zoukankan      html  css  js  c++  java
  • 解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错

    mysql5.7

    运行sql脚本时报错

    1 [Err] 1067 - Invalid default value for 'UPDATE_TIME'
    2 [Err] CREATE TABLE `V_TBL_AMOUNT_REASON` (
    3   `ID` int(11) NOT NULL AUTO_INCREMENT,
    4   `AMOUNT_CODE` varchar(10) NOT NULL,
    5   `AMOUNT_VALUE` varchar(255) NOT NULL,
    6   `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
    7   PRIMARY KEY (`ID`)
    8 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

    这个问题和mysql中sql_mode有关系,我们可以采用两种方法来查看它的值

    方法一:

    SHOW VARIABLES LIKE 'sql_mode%';

    查询得到入下信息

     方法二:

    SELECT @@sql_mode;

    解决办法

    修改mysql配置文件(修改完重启服务)

    win下修改my.ini

    sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    #sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

    linux

    在my.cnf[mysqld]下添加

    sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  

    Mac系统下:

    在MacOS中默认是没有my.cnf 文件,如果需要对MySql 进行定制,拷贝/usr/local/mysql/support-files/目录  
    中任意一个.cnf 文件。笔者拷贝的是my-default.cnf,将它放到其他目录,按照上面修改完毕之后,更名为  
    my.cnf,然后拷贝到/etc目录再重启下mysql就大功告成了。


  • 相关阅读:
    手游产品经理初探(十)竞品分析
    Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
    code forces 148D Bag of mice (概率DP)
    Android Studio怎样更改JDK和SDK的路径?
    bbb
    收集了三年的最好的设计站点
    C# foreach 有用方法具体解释
    Java 过滤器的作用
    SVD神秘值分解
    《C语言编写 学生成绩管理系统》
  • 原文地址:https://www.cnblogs.com/wang666/p/9186559.html
Copyright © 2011-2022 走看看