【请教】关于mysql设置了unique key被插入重复记录的疑惑
有一问题没搞明白,特此请教,望指教!谢谢!
我有一个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的表,会在什么情况下被插入重复记录呢?
谢谢!
相关推荐
MySQL删除重复记录
MySQL删除重复记录方法。
Mysql中 unique列插入重复值该怎么解决呢
当unique列在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子句跳过INSERT、中断操作或者更新旧记录为新值。 mysql> create table menus(id tinyint(4) not null auto_increment, -> label varchar(10) null,url varchar(20) null,unique key(id)); Query OK, 0 rows affected (0.13 sec) mysql> insert int
mysql插入前判断数据是否存在的操作
业务场景:需要记入访客的访问情况,但不能重复记入 可以插入前进行判断要插入的数据是否存在业务代码如下 : INSERT INTO t_topic_vistor(user_id,topic_code) SELECT '218', 'XQ33019920170811142528217' FROM DUAL WHERE NOT EXISTS(SELECT * FROM t_topic_vistor WHERE user_id = 218 and topic_code='XQ33019920170811142528217') 语法如下: INSERT INTO table(field1, fiel
MySql避免重复插入记录的几种方法
本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,有需要的朋友可以参考一下
MySQL建立唯一索引实现插入重复自动更新
给大家分享的是当向数据插入数据时,判断字段是不是存在,存在执行更新操作,如果不存在就执行插入操作的方法,有需要的朋友们可以参考借鉴。


