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