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就大功告成了。


  • 相关阅读:
    SWPUCTF2019 | 神奇的二维码
    CG-CTF | Hello,RE!
    CG-CTF | I wanna play CTF
    CG-CTF | MD5
    CG-CTF | 综合题2
    CG-CTF | 密码重置2
    CG-CTF | 综合题
    修改input输入框placeholder文字默认颜色
    解决前端浏览器字体小于12px办法
    box-shadow四个边框设置阴影样式
  • 原文地址:https://www.cnblogs.com/wang666/p/9186559.html
Copyright © 2011-2022 走看看