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常见错误处理方法