mysql5.7 版本 timestamp NOT NULL DEFAULT '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  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM