【轉】解決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

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
  1. my.ini中查找sql-mode,  
  2.   
  3. 默認為sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",  
  4.   
  5. 將其修改為sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重啟mysql后即可  
那么如果是虛擬主機或者是空間怎么辦了。如果你能讓空間商幫你改那是最好。

如果不能,那你就只能程序改改。都規范一點。空值就寫 null

這個問題解決了,但在還原備份的時候還出現了“1062 - Duplicate entry ‘1’ for key 1”的問題,如下圖:


網上也沒有查到相關的資料,后來又重新創建了一下備份,復制過來還原,

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


免責聲明!

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



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