Mysql ';的默认值无效;创建数据集';DATETIME默认值NOW()
我正在mariadb/mysql引擎中运行以下查询Mysql ';的默认值无效;创建数据集';DATETIME默认值NOW(),mysql,mariadb,Mysql,Mariadb,我正在mariadb/mysql引擎中运行以下查询 CREATE TABLE IF NOT EXISTSQuotes(idINTEGER NOT NULL auto\u increment,quoteTEXT,authorVARCHAR(255),genretagTEXT,createdAtDATETIME DEFAULT NOW(),updatedAtDATETIME DEFAULT NOW(),主键(id))ENGINE=InnoDB 但是,我得到以下错误: 创建表时出错: {“create
CREATE TABLE IF NOT EXISTS
Quotes(
idINTEGER NOT NULL auto\u increment,
quoteTEXT,
authorVARCHAR(255),
genretagTEXT,
createdAtDATETIME DEFAULT NOW(),
updatedAtDATETIME DEFAULT NOW(),主键(
id))ENGINE=InnoDB代码>
但是,我得到以下错误:
创建表时出错:
{“createdAt”的默认值无效}
以下是sql模式的结果:
show variables like 'sql_mode' ;
严格的\u TRANS\u表,没有\u ZERO\u IN\u DATE,没有\u ZERO\u DATE,允许\u无效的\u日期,错误\u除以\u ZERO,没有\u自动创建\u用户,没有\u引擎\u替换
感谢您的帮助。来自:
从MariaDB 10.0.1开始,MariaDB从10.0.1开始,日期时间列
也接受当前_时间戳作为默认值
请注意,没有提到NOW()
,但效果相同。您运行的是哪个版本。在DATETIME
上允许DEFAULT
是一个很少出现的新特性。(时间戳非常古老)
。@RickJames非常感谢你,这确实是老mariadb的功劳。我在运行5.x。现在我已经升级到10.X了。