更新我的MySQL版本從5.6到5.7後,我得到一個錯誤:不正確的日期時間值mysql57
Incorect datetime value: 0000-00-00 00:00:00 for column 'create_time' at row 1
這是CREATE_TIME
`create_time` DATETIME DEFAULT '0000-00-00 00:00:00'
更新我的MySQL版本從5.6到5.7後,我得到一個錯誤:不正確的日期時間值mysql57
Incorect datetime value: 0000-00-00 00:00:00 for column 'create_time' at row 1
這是CREATE_TIME
`create_time` DATETIME DEFAULT '0000-00-00 00:00:00'
結構確保你使用的是最新的MySQL 5.7版本比5.7.7版本更新,或者禁用嚴格模式。 Versions 5.7.4 to 5.7.7 incorporated NO_ZERO_DATE
SQL mode into strict mode.
在MySQL 5.7.4中,
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
,並且NO_ZERO_IN_DATE
SQL模式已被棄用。從MySQL 5.7.4到5.7.7,這些模式在明確命名時不會執行任何操作。相反,它們的效果包含在嚴格SQL模式的影響中(STRICT_ALL_TABLES
或STRICT_TRANS_TABLES
)。 換句話說,嚴格模式在這些版本中的含義與嚴格模式加上ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
和NO_ZERO_IN_DATE
之前的5.7.4含義相同。MySQL 5.7.4更改嚴格模式更嚴格,包括
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
和NO_ZERO_IN_DATE
引起了一些問題。例如,在MySQL 5.6中使用嚴格模式但未啓用NO_ZERO_DATE
,可以使用DEFAULT '0000-00-00 00:00:00'
來定義TIMESTAMP
列。 在具有相同模式設置的MySQL 5.7.4中,嚴格模式包含NO_ZERO_DATE
和TIMESTAMP
列的效果不能用DEFAULT '0000-00-00 00:00:00'
定義。這會導致CREATE TABLE
語句從5.6到5.7.4的複製失敗(如果它們包含TIMESTAMP
列)。
好的,我明白了。 :D謝謝。但我能做些什麼來解決。我需要使用ZERO_DATE。這個ZERO_DATE是否可以在5.7中啓用? – Rampagre3e3121312324
如果我更改爲NULL,應該罰款? – Rampagre3e3121312324
如果需要,請禁用嚴格模式。它是否能與NULL一起工作完全取決於你的應用程序邏輯。 – miken32