MySQL 错误:“CREATED_DATE”的默认值无效

Posted

技术标签:

【中文标题】MySQL 错误:“CREATED_DATE”的默认值无效【英文标题】:MySQL Error : Invalid default value for 'CREATED_DATE' 【发布时间】:2015-09-11 06:01:53 【问题描述】:

我在 AWS 中创建了一个 LAMP 实例,在创建数据库时,我遇到了这个错误

Error Code: 1067. Invalid default value for 'CREATED_DATE'

我检查了sql模式,这是响应

 mysql>  SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode      |       |
+---------------+-------+

一组中的 1 行(0.00 秒)

我不确定这是怎么回事。这是我的数据库脚本

CREATE TABLE ENTITIES (
  ENTITY_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  NAME VARCHAR(30) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  CREATED_DATE DATETIME DEFAULT CURRENT_TIMESTAMP,   
  UPDATED_DATE DATETIME ON UPDATE CURRENT_TIMESTAMP,     
  INDEX idx_ENTITIES_id1 (ENTITY_ID ASC)
) 
ENGINE = InnoDB
AUTO_INCREMENT=100
;

知道如何解决这个问题吗?

【问题讨论】:

我对@9​​87654324@ 做了什么感到困惑? 另外,我根本没有收到这个错误。 我在 XAMPP 安装中没有收到此错误,但是当我尝试在 aws 实例中运行时,弹出此错误 【参考方案1】:

更改 CREATED_DATE DATETIME DEFAULT CURRENT_TIMESTAMP

CREATED_DATE TIMESTAMP 默认 CURRENT_TIMESTAMP

【讨论】:

我认为这并不重要,我可以毫无问题地创建此表。 您使用的是 5.6.5+ 版本吗? AWS:服务器版本:5.5.42 MySQL Community Server (GPL),这是发生错误的地方 不,它与 AWS 无关。这是 MySQL 服务器版本。此功能存在于TIMESTAMP 列,直到它成为expanded to include DATETIME columns in MySQL 5.6.5。请注意TIMESTAMPDATETIME 列offer different functionality and are not fully interchangeable。确保您使用与其设计一致的TIMESTAMP 列。另请注意,在比生产服务器上的版本更新的版本上进行开发通常是不明智的。 @Michael-sqlbot 这就是我要说的!【参考方案2】:

问题不是因为 Amazon EC2 实例。

Amazon EC2 是类似于您自己的本地计算机的虚拟机。

该错误是由于您使用的mysql查询错误,请参考您在Amazon EC2实例中安装的mysql版本对应的create table mysql查询语法。

希望能解决问题.....

【讨论】:

以上是关于MySQL 错误:“CREATED_DATE”的默认值无效的主要内容,如果未能解决你的问题,请参考以下文章

左连接的where子句中的Mysql查询错误

MySql按周,按月,按日分组统计数据

J:牛顿方法的默示副词

如何在 CI Active Record 中按 MAX 日期选择

jqGrid字符串自定义格式,如日期格式

错误代码:1060 列名重复“NA”