1. 程式人生 > >解決Incorrect integer value '' for column 'id' at row 1的方法

解決Incorrect integer value '' for column 'id' at row 1的方法

在使用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”的問題,如下圖:


網上也沒有查到相關的資料,後來又重新建立了一下備份,複製過來還原,

問題就解決了,估計是建立備份的過程中由於網路問題產生了錯誤。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://www.cnblogs.com/captainbed