我有以下sql create语句

mysql> CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ->   `id` INT(11) NOT NULL AUTO_INCREMENT ,
    ->   `name` VARCHAR(100) NOT NULL ,
    ->   `description` VARCHAR(255) NOT NULL ,
    ->   `live_start_date` DATETIME NULL DEFAULT NULL ,
    ->   `live_end_date` DATETIME NULL DEFAULT NULL , 
    ->   `notes` VARCHAR(255) NULL ,
    ->   `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ->   `created_by` INT(11) NOT NULL ,
    ->   `update_date` TIMESTAMP NOT NULL DEFAULT  CURRENT_TIMESTAMP  ,
    ->   `updated_by` INT(11) NOT NULL , 
    ->   `status` VARCHAR(45) NOT NULL ,
    ->   PRIMARY KEY (`id`) ) 
    -> ENGINE = InnoDB;

给出以下错误

ERROR 1067 (42000): Invalid default value for 'create_date'

这里的错误是什么?

推荐答案

这是因为服务器SQL模式-NO_ZERO_DATE.

参考:NO_ZERO_DATE-在严格模式下,不允许'0000-00-00'作为有效日期.您仍然可以使用IGNORE选项插入零日期.如果不是在严格模式下,则接受日期,但会生成警告.

Mysql相关问答推荐

无法从容器从APS. NET应用程序连接到MySQL服务器容器

SQL计算不同的列并返回所有行

无法删除或更新父行:外键约束无法删除表

我可以指示MariaDB-Install-db和MariaDB忽略配置中的用户设置吗?

LaravelEloquent ToSql()缺少连接表

用于将具有多个状态更改日期列的单行转换为具有状态和时间戳的多行的SQL查询

在时间戳上搜索大的MySQL表很慢

MySQL中如何对字符串进行算术运算?

Group_CONCAT CASE 乘法输出

外部磁盘上的MySQL表空间和数据文件

将时间戳四舍五入到最接近的半小时而不遗漏丢失的数据

MySQL - 如何根据单列查找重复行?

将 AVG 与 HAVING 结合使用

为什么这个查询需要超过 5 秒才能运行?

如何解决这个特定的 SQL 查询?我的解决方案还返回不想要的值

让 MySQL 在 OSX 10.7 Lion 上运行

PHP 判断 NULL

一次查询 MySQL 插入多行

我应该使用什么列数据类型来存储大量文本或 html

MySQL术语约束与外键的区别?