mysql导入数据库诡异出错一例

【故障描述】用户通过phpmyadmin导入数据库无法导入,尝试导入出错如下:

ERROR 1054 (42S22) at line 1836:Unknown column 'catid' in 'field list'

编辑器打开sql文件查看1836行上下:

检查sql语句没有问题,于是查看了一下导入的【*_liuyan】这个表,发现只有9个字段,如下图所示:

通过以上两图对比很明显看到问题所在了:【创建表的sql语句一共有21个字段,但是创建好的表却只有9个字段,因此在插入数据的时候因为没有catid字段而报错】那么,为什么只有9个字段呢?

【解决过程】

删除所有表,直接将创建*_liuyan表的sql语句及插入语句单独执行,成功导入未出错;再次说明SQL语句根本没有什么问题。

再次检查sql文件,当向上拉的时候看到了下图:

一下子明了了,也就是【在创建*_liuyan表之前还有一段sql语句创建一个表*_Liuyan,而这个表只有9个字段】,【Windows主机mysql默认是表名大小写不敏感,Linux主机mysql敏感】,因此当创建【*_Liuyan】这个表后就不会再创建【*_liuyan】这个表,肯定就只有9个字段,显然后边的插入语句肯定会报错了。

【总结】

尽量不要使用大小写来区分的同名表名;

遇到问题一定要细心有耐心;


下一篇:MySQL常见错误处理方法