2015-07-19 63 views
1

,因爲我升級我的MySQL數據庫到5.7,我有問題,當我嘗試設置日期時間列0000-00-00 00:00:00的MySQL 5.7中存在的問題與DATETIME =「0000-00-00 00:00:00」

UPDATE users 
SET updateTime = '0000-00-00 00:00:00' 
WHERE id = 123; 

// #1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'updateTime ' at row 1 

如果我用UPDATE IGNORE [...]運行查詢,它工作正常。

未設置SQL模式NO_ZERO_DATE。有什麼設置可以解決這個問題嗎?

我真的討厭添加IGNORE到應用程序中的每個查詢。

+0

你爲什麼要這麼做?如果你需要一個空的日期 - 使字段可以爲空並且使用NULL作爲值 –

+0

謝謝你的回覆。該字段已被設置爲NULL。改變它會導致一些副作用(更多的bug),這就是爲什麼我需要找到一個修補程序。重新開始工作後,我必須找到一個「最佳實踐解決方案」。 – Tream

+0

「它已經設置爲NULL」我的意思是,可以設置NULL。我不確定,如果這不會導致許多新問題。我現在正在檢查這個。 – Tream

回答

0

我在更新Ubuntu 14.04的時候遇到了同樣的問題14.4 repo mysql 5.5.6?到MySQL 5.7.9

我使用perl腳本做幾LOAD DATA INFILE其中的日期有時0000-00-00 00:00:00。我還得到了DBO跟蹤中的錯誤1292,這是通過從optionsfile中的sql模式中刪除STRICT_TRANS_TABLES來解決的。