我正在 mariadb/mysql 引擎中运行以下查询。
如果不存在则创建表
引用(
idINTEGER NOT NULL auto_increment ,
引用TEXT,
作者VARCHAR(255),
流派VARCHAR(255),
标签TEXT,
createdAtDATETIME DEFAULT NOW(),
updatedAtDATETIME DEFAULT NOW(), PRIMARY KEY (
id)) ENGINE=InnoDB;
但是,我收到以下错误:
创建表时发生错误:
{Invalid default value for 'createdAt'}
这是sql模式的结果:
show variables like 'sql_mode' ;
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
感谢任何帮助。
最佳答案
来自https://mariadb.com/kb/en/library/datetime/ :
MariaDB starting with 10.0.1 Since MariaDB 10.0.1, DATETIME columns also accept CURRENT_TIMESTAMP as the default value.
注意,没有提到NOW()
,但效果是一样的。
关于mysql - 'createdAt' DATETIME DEFAULT NOW() 的默认值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750963/