删除重复项

beq87vna  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(377)

尝试更新表时出错。更新表时,会收到错误消息:
msg 2601,级别14,状态1,行1不能在具有唯一索引“admin\u userid”的对象“dbo.dimadmin”中插入重复的键行。重复的键值是(c2botha)。
当我使用sqlassist查看表属性时,我看到在试图更新的字段旁边有一个 lightning 图标。这个 lightning 图标是什么意思?这是否意味着字段不能包含重复的值。
请告知

ffscu2ro

ffscu2ro1#

错误消息表示您尝试更新或插入的列在任何行中都已具有该值。
因为已经创建了唯一索引,所以该列不能有重复的索引。
因此,请确保该列的值“c2botha”不存在。
在插入记录之前检查是否存在。或者,如果insert列表有重复项,那么它也可能抛出相同的错误,并且不会在表中的existence check查询中捕获该错误。
您可以通过以下任一方法检查是否存在

IF NOT EXISTS(SELECT 1 FROM Yourtable WHERE <Condition>)
BEGIN
<Insert Query>
END

或者像这样

INSERT INTO YourTable1
SELECT

* 

FROM YourTable2 YT2 WHERE NOT EXISTS
(
SELECT 1 FROM YourTable1 YT1 WHERE YT1.ID = YT2.ID
)
fiei3ece

fiei3ece2#

错误很明显,它告诉你已经有一个记录 UserIDC2Botha . 该列上有一个唯一索引。所以,不能在同一个文件中插入另一个。这里有两种选择。
删除现有记录并小心处理。它可能会导致相关的数据问题。
或者可以更新现有记录。

相关问题