mysql導(dǎo)入數(shù)據(jù)庫詭異出錯一例
【故障描述】用戶通過phpmyadmin導(dǎo)入數(shù)據(jù)庫無法導(dǎo)入,嘗試導(dǎo)入出錯如下:
ERROR 1054 (42S22) at line 1836:Unknown column 'catid' in 'field list'
編輯器打開sql文件查看1836行上下:
檢查sql語句沒有問題,于是查看了一下導(dǎo)入的【*_liuyan】這個表,發(fā)現(xiàn)只有9個字段,如下圖所示:
通過以上兩圖對比很明顯看到問題所在了:【創(chuàng)建表的sql語句一共有21個字段,但是創(chuàng)建好的表卻只有9個字段,因此在插入數(shù)據(jù)的時候因為沒有catid字段而報錯】那么,為什么只有9個字段呢?
【解決過程】
刪除所有表,直接將創(chuàng)建*_liuyan表的sql語句及插入語句單獨執(zhí)行,成功導(dǎo)入未出錯;再次說明SQL語句根本沒有什么問題。
再次檢查sql文件,當(dāng)向上拉的時候看到了下圖:
一下子明了了,也就是【在創(chuàng)建*_liuyan表之前還有一段sql語句創(chuàng)建一個表*_Liuyan,而這個表只有9個字段】,【W(wǎng)indows主機mysql默認(rèn)是表名大小寫不敏感,Linux主機mysql敏感】,因此當(dāng)創(chuàng)建【*_Liuyan】這個表后就不會再創(chuàng)建【*_liuyan】這個表,肯定就只有9個字段,顯然后邊的插入語句肯定會報錯了。
【總結(jié)】
盡量不要使用大小寫來區(qū)分的同名表名;
遇到問題一定要細(xì)心有耐心;
下一篇:MySQL常見錯誤處理方法