【问题标题】:how to create new table in mysql with date default value for current date?如何在mysql中使用当前日期的日期默认值创建新表?
【发布时间】:2022-01-13 17:00:43
【问题描述】:

我正在尝试以下代码:

create table People (
  first_name varchar(15) not null,
  last_name varchar(15) not null,
  registration_date date not null); 

如何为日期列设置默认值?尝试now(),但它无效..

【问题讨论】:

  • 试试current_date

标签: mysql sql ddl


【解决方案1】:

您可以使用current_date

create table People (
    first_name varchar(15) not null,
    last_name varchar(15) not null,
    registration_date date not null DEFAULT (CURRENT_DATE)
); 

【讨论】:

    【解决方案2】:

    这行得通,我在 MySQL 8.0.27 上测试过。

    mysql> create table People (
      first_name varchar(15) not null,
      last_name varchar(15) not null,
      registration_date date not null default (current_date)); 
    

    注意默认表达式周围的括号。这是必需的。

    mysql> insert into People (first_name, last_name) values ('Bill', 'Karwin');
    
    mysql> select * from People;
    +------------+-----------+-------------------+
    | first_name | last_name | registration_date |
    +------------+-----------+-------------------+
    | Bill       | Karwin    | 2022-01-13        |
    +------------+-----------+-------------------+
    

    表达式作为列默认值是 MySQL 8.0.13 中引入的一项新功能,因此它不适用于旧版本的 MySQL。请参阅https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 2016-03-06
      • 2021-03-09
      • 2011-04-15
      • 2018-03-05
      • 2011-08-08
      • 2022-07-22
      相关资源
      最近更新 更多