MySQL DATE字段,默认为CURDATE().不是DATETIME

Beh*_*ton 4 mysql default date

可以将MySQL 5.7中DATE(NOT DATETIME)列的默认值设置为当前日期吗?
我试试这个(由Workbench生成):

ALTER TABLE `db`.`table` CHANGE COLUMN `column` `column` DATE NOT NULL DEFAULT CURDATE() ;
Run Code Online (Sandbox Code Playgroud)

但不适合我.(表中没有数据)

Gor*_*off 8

你不能.该文件是对这个很清楚:

这意味着,例如,您不能将日期列的默认值设置为函数的值,例如NOW()或CURRENT_DATE.例外情况是您可以将CURRENT_TIMESTAMP指定为TIMESTAMP和DATETIME列的默认值.请参见第12.3.5节"TIMESTAMP和DATETIME的自动初始化和更新".

您可以执行以下操作之一:

  • 设置一个具有默认值的列DATETIME.创建将日期提取为单独列的视图.
  • 创建一个insert触发器来设置date列.