由于這個數據庫服務器存放的數據庫比較多且都是小數據庫,所以最初的時候是運行在windows服務器上的。前一段時間由于機房服務器要做調整,于是我便在一個夜深人靜的夜晚對數據庫進行的遷移及前臺應用程序進行了調整,調整結束后測試應用均可以正常訪問后我便離去了。
周一剛上班就收到反饋:網站后臺發(fā)布文章報如下錯誤:
代碼如下:
insert into doc_main (title,typeid,uptime,intro,ifhot,imgurl1,doctype,fileurl1,shunxu,titleurl,qitype) values('test','13','2011-5-30','test','1','','0','','','','279')
原因分析過程:
起初我以為是數據庫文件出現了問題,但是比對新老數據庫文件后,沒有發(fā)現異常,初步判斷應該是數據庫應用程序的問題,于是我便把上面的這句SQL語句復制后直接在mysql服務器上執(zhí)行,執(zhí)行的結果是令人失望的,報了如下錯誤:
代碼如下:
[SQL] insert into doc_main (title,typeid,uptime,intro,ifhot,imgurl1,doctype,fileurl1,shunxu,titleurl,qitype) values('test','13','2011-5-30','test','1','','0','','','','279')
[Err] 1366 - Incorrect integer value: '' for column 'shunxu' at row 1
查看數據表后發(fā)現shunxu這個字段要求是整數,而默認是null,把它的默認值改為0。重啟mysql服務后,測試OK。
當然你也可以參照本博客中的《MySQL 5不能創(chuàng)建自動增加的字段》文章,注釋掉sql-mode也可解決上述問題。
更多信息請查看IT技術專欄