Mysql ';的默认值无效;创建数据集';DATETIME默认值NOW()

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

我正在mariadb/mysql引擎中运行以下查询

CREATE TABLE IF NOT EXISTS
Quotes
id
INTEGER NOT NULL auto\u increment,
quote
TEXT,
author
VARCHAR(255),
genre
tag
TEXT,
createdAt
DATETIME DEFAULT NOW(),
updatedAt
DATETIME 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了。