如何使用当前日期的日期默认值在 mysql 中创建新的 table?

how to create new table in mysql with date default value for current date?

我正在尝试以下代码:

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

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

您可以使用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)
); 

这有效,我在 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