SQL 错误 [1062] [23000]: Duplicate entry 'xxxx' for key 'xxxx'

异常内容

SQL 错误 [1062] [23000]: Duplicate entry 'xxxx' for key 'xxxx'

分析异常

如果报错内容如上所示,原因该表有一列唯一索引或者多列添加了联合唯一索引

解决方案

1.找到唯一索引

SQL操作

-- 查看表的所有约束
show keys from tableName;
-- 查看约束名为name_unique的主键
show keys from tableName where key_name = 'name_unique';

Navicat客户端操作

 

 

 

2.解决方式

SQL操作

2.1找到该表的重复数据,根据业务场景删除重复的数据即可

select fieldname,count(fieldname) from tablename group by fieldname having count(fieldname) > 1;

2.2删除该表唯一索引或者联合唯一索引

-- 删除name_unique的约束
alter table tablename drop index name_unique;
-- 创建名为name_unique的联合唯一约束(2个字段联合唯一)
alter table tablename add unique key name_unique ( name,parent_id);

笔者: 沙漏倒装回忆1024

出处https://www.cnblogs.com/lpan1024/

版权所有,欢迎保留原文链接进行转载!

请点赞关注留言,如果有任何建议也可以留言,因为我会回复每一条评论,感谢阅读。

posted @ 2022-09-03 12:55  沙漏倒装回忆1024  阅读(5588)  评论(0编辑  收藏  举报