Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Mysql列默认值更改为当前_日期会出现错误吗?_Mysql - Fatal编程技术网

将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