将Mysql列默认值更改为当前_日期会出现错误吗?
给出:将Mysql列默认值更改为当前_日期会出现错误吗?,mysql,Mysql,给出: 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
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
根据mysql文档,最近刚将引擎从
MyISAM
更改为InnoDB
数据类型规范中的默认值子句表示
列的默认值。除了一个例外,默认值必须为
保持不变;它不能是函数或表达式。这就是说,,
例如,不能将日期列的默认值设置为
函数的值,如NOW()或CURRENT_DATE。例外
您可以将当前的时间戳指定为
时间戳
要解决这个问题,您可能需要将数据类型定义为带有默认当前时间戳的TIMESTAMP列
如果您不需要时间戳,那么您必须在插入时将列值设置为Now()oh我在这里检查:,并且似乎
CURRENT\u TIMESTAMP
与CURRENT\u DATE
处于同一条船上。谢谢你指出这个例外。我发现这让你很困惑,比如函数列表。但是对于默认值,现在是唯一的选项是使用当前时间戳作为默认值的时间戳。
project_capture_date, date, NO, , 0000-00-00