【请教】关于mysql设置了unique key被插入重复记录的疑惑

向雅 2014-05-04 07:00:12
HI,各位:

有一问题没搞明白,特此请教,望指教!谢谢!

我有一个mysql的表A,创建了唯一索引,UNIQUE KEY `iindex` (`name`,`fdate`,`id`)
然后这个表中的数据是通过sqoop从hadoop上导入的,由于更新了hadoop的部分数据,导入过程执行了2次。
结果发现,在这个mysql的表A中,竟然在UNIQUE KEY字段上出现了重复记录,比如,name=wuhan,fdate=2014-05-03,id=333这样的记录有2条一模一样的。发现后再次测试,仍然如此,多次导入后有3条,4条重复的记录。
而实际上mysql表A的这个唯一索引是生效的的,当我手工进行insert时会提示duplicate entry 重复键无法插入。


我现在疑惑的是,sqoop在进行export的时候也是进行的insert A values ('wuhan','2014-05-03','333'),('wuhan','2014-05-03','444').....,这样的操作,
mysql的这个UNIQUE KEY约束应该是在任何insert情况下都会进行检查的吧?为什么这里会导入重复记录呢?


有UNIQUE KEY的表,会在什么情况下被插入重复记录呢?


谢谢!
...全文
584 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向雅 2014-05-05
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
贴出你的 show create table 表A 以供分析。
另外贴出 select * from 表A where name=wuhan,fdate=2014-05-03,id=333 以确信有重复记录。


多谢回复!

建表语句:
CREATE TABLE `area_ad` (
`cname` varchar(30) NOT NULL DEFAULT '' COMMENT '城市名称',
`pname` varchar(30) NOT NULL DEFAULT '' COMMENT '省份名称',
`pv` int(11) NOT NULL DEFAULT '0' COMMENT 'PV数',
`click` int(11) NOT NULL DEFAULT '0' COMMENT '点击数',
`fdate` date NOT NULL COMMENT '日期',
`adid` int(11) NOT NULL DEFAULT '0' COMMENT '广告id',
UNIQUE KEY `iindex` (`cname`,`fdate`,`adid`) USING BTREE,
KEY `idate` (`fdate`) USING BTREE,
KEY `icname` (`cname`) USING BTREE,
KEY `ipname` (`pname`) USING BTREE,
KEY `iaid` (`adid`) USING BTREE
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`area_ad_201402`,`area_ad_201403`,`area_ad_201404`,`area_ad_201405`)

重复记录的截图:

rucypli 2014-05-05
  • 打赏
  • 举报
回复
应该不会有重复的 请仔细检查
rucypli 2014-05-05
  • 打赏
  • 举报
回复
select `cname`,`fdate`,`adid,count(*) from tb group by `cname`,`fdate`,`adid 应该可以看出来到底一样不一样了
ACMAIN_CHM 2014-05-05
  • 打赏
  • 举报
回复
select * from area_ad where cname='武汉市' order by `cname`,`fdate`,`adid` 不妨尝试一下,你会找不到那条记录了。 注意 '武汉市' <> '武汉市 ' <> '武汉 市' <>' 武汉市'
ACMAIN_CHM 2014-05-04
  • 打赏
  • 举报
回复
贴出你的 show create table 表A 以供分析。 另外贴出 select * from 表A where name=wuhan,fdate=2014-05-03,id=333 以确信有重复记录。

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧