zoukankan      html  css  js  c++  java
  • mysql5.7 datetime 默认值为‘0000-00-00 00:00:00'值无法创建问题解决

    表结构:

    DROP TABLE IF EXISTS `t_consts_classify`;
    CREATE TABLE `t_consts_classify` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
      `code` varchar(50) NOT NULL DEFAULT '',
      `parent_code` varchar(50) NOT NULL DEFAULT '0' COMMENT '父级别code',
      `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
      `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `create_user` varchar(32) NOT NULL DEFAULT 'system',
      `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `update_user` varchar(32) NOT NULL DEFAULT 'system',
      `del` tinyint(1) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='课程类别表';

    报错:

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

    解决方案:

    1、使用root登陆数据库 命令界面执行

    select @@sql_mode;

    返回

    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    2、继续执行

    SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    3、重新建表

    原因:

    NO_ZERO_IN_DATE,NO_ZERO_DATE是无法默认为‘0000-00-00 00:00:00’的根源。

    NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零 

    NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

  • 相关阅读:
    Webservice学习之新建一个最简单的Webservice项目
    初学程序一定要养成良好的习惯
    你晚上睡好了吗?
    如何面对失恋?
    多病之秋少言多饮
    转:避开秋季相冲食物
    转:饭后九不要包你保健康
    转:五官不适预示五脏衰弱
    转:过度疲劳的27个信号与预防方法
    foxmail是不是不行了?
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/9334247.html
Copyright © 2011-2022 走看看