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数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

  • 相关阅读:
    如何在fragment里面嵌套viewpager?
    textview限制字数,结尾显示。。。。。
    限制imageview大小
    iOS开发核心动画之画图板
    iOS开发核心动画之九宫格解锁
    iOS开发核心动画之Quartz2D绘图
    iOS开发核心动画之触摸手指识别
    iOS开发网络多线程之断点下载
    iOS开发网络多线程之网络请求文件解析
    iOS开发网络多线程之Runloop无限循环
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/9334247.html
Copyright © 2011-2022 走看看