在MySQL 5.7中,可以将DATE(而非DATETIME)列的默认值设置为当前日期吗? 我尝试了以下方法(由Workbench生成): ALTER TABLE `db`.`table` CHANGE COLUMN `column` `column` DATE NOT NULL DEFAULT CURDATE() ; 但对我不起作用。(表中没有数据)
不可以。根据文档的明确规定:“这意味着,例如,您无法将日期列的默认值设置为函数值,如NOW()或CURRENT_DATE。 例外情况是,您可以将CURRENT_TIMESTAMP指定为TIMESTAMP和DATETIME列的默认值。 请参见第12.3.5节,“自动初始化和更新TIMESTAMP和DATETIME”。”您可以执行以下操作之一:- 为DATETIME设置默认值的列。创建一个视图,提取日期作为单独的一列。 - 创建一个insert触发器来设置日期列。