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

向雅 向雅 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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的表,会在什么情况下被插入重复记录呢?


谢谢!
...全文

相关推荐

MySQL删除重复记录

MySQL删除重复记录方法。

rareli

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

weixin_38724154

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

weixin_38622983

MySql避免重复插入记录的几种方法

本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,有需要的朋友可以参考一下

weixin_38697940

MySQL建立唯一索引实现插入重复自动更新

给大家分享的是当向数据插入数据时,判断字段是不是存在,存在执行更新操作,如果不存在就执行插入操作的方法,有需要的朋友们可以参考借鉴。

weixin_38697753
评论 5
收藏 已收藏
分享
返回顶部
向雅
MySQL 57,062 成员 56,759 内容