在使用Navicat for MySQL還原數據庫備份時,出現Incorrect integer value: '' for column 'id' at row 1的錯誤;
網上查資料發現5以上的版本如果是空值應該要寫NULL
這種問題一般mysql 5.x上出現。
使用Select version();查看,
我用的是mysql5.0.37,而創建備份的MySQL數據庫版本是5.6
官方解釋說:得知新版本mysql對空值插入有"bug",
要在安裝mysql的時候去除默認勾選的enable strict SQL mode
那么如果我們安裝好了mysql怎么辦了,解決辦法是更改mysql中的配置 my.ini
- my.ini中查找sql-mode,
- 默認為sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
- 將其修改為sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重啟mysql后即可
如果不能,那你就只能程序改改。都規范一點。空值就寫 null
這個問題解決了,但在還原備份的時候還出現了“1062 - Duplicate entry ‘1’ for key 1”的問題,如下圖:
網上也沒有查到相關的資料,后來又重新創建了一下備份,復制過來還原,
問題就解決了,估計是創建備份的過程中由於網絡問題產生了錯誤。