ALTER TABLE `mysystem`.`projects`
MODIFY COLUMN `project_capture_date` DATE NOT NULL DEFAULT CURRENT_DATE();
给出:
Error Code: 1064. You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server
version for the right syntax to use near 'CURRENT_DATE()'
at line 2
当前行定义:
project_capture_date, date, NO, , 0000-00-00
刚刚将引擎从InnoDB
更改为MyISAM
。
答案 0 :(得分:1)
根据mysql文档
http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
数据类型规范中的DEFAULT值子句表示a 列的默认值。除了一个例外,默认值必须 是一个常数;它不能是一个功能或表达。这意味着, 例如,您不能将日期列的默认值设置为 NOW()或CURRENT_DATE等函数的值。例外 是你可以指定CURRENT_TIMESTAMP作为a的默认值 TIMESTAMP
要解决此问题,您可能需要使用DEFAULT CURRENT_TIMESTAMP将数据类型定义为TIMESTAMP列
<强> DEMO 强>
如果您不想要TIMESTAMP,那么您可以在插入时将列值设置为Now()