您现在的位置是:网站首页>数据库

Mysql Column 'xxx' specified twice的解决方法

数据库阿文2020年4月05日14160浏览

简介今天在做一个数据对比批量更新的接口时,因为要从服务器下载某张表的部分数据到本地数据库来执行,且数据表的主键为自增id,当时打算写了一个查询sql排除自增列“id”列……

        今天在做一个数据对比批量更新的接口时,因为要从服务器下载某张表的部分数据到本地数据库来执行,且数据表的主键为自增id,当时打算写了一个查询sql排除自增列“id”列后用navicat导insert语句插入本地数据库表中,用Mysql查询指定库某个表得所有字段获取那张表的所有字段,语句写好后一运行时发现提示提示:specified twice错误如下:

Column 'xxx' specified twice

下面我来给大家介绍解决办法。用MySQL那么多年,终究还是有些错误看不透啊。。。

刚开始自己以为是服务器上表字段类型和本地表字段类型不匹配原因还仔细对比了一下,发觉字段类型都一致,然后自己检查了一下navicat导出的insert语句总算发现了问题,原来当时自己获取数据表所有列时忘了指定数据库名, 那台数据库服务器上面有两个库同时包含一张相同表名的数据库,最后得到的数据表的字段列会叠加起来,执行查询也没任何问题,如下:

select name,age,name,age from userinfo

最后navicat导出的sql语句如下:

insert into userinfo(name,age,name,age) values('张三',10,'张三',10)

运行后肯定GG了,这个错误很少见,因为基本不会见,今天也是自己偷懒了动态生成SQL语句才会出现这个问题。好了,相信看了上面都知道怎么回事了,其实就是重复字段了。

解决方法就是删除你重复的字段即可,提示哪个列重复就删除哪个列,

此文留给自己的,算是给自己的提醒,写代码要谨慎 谨慎 再谨慎!!!


标签: mysql sql navicat

1

评论文明上网,理性发言0条评论