删除行后插入时获取重复键

时间:2013-10-16 06:54:32

标签: sql sql-insert uniqueidentifier delete-row

我在做:

DELETE FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3' AND idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860' AND data=3

IdPK uniqueidentifieridFKFK uniquedientifiernot null两者。Dataint {{ 1}})

然后我这样做:

not null

这是我收到错误的地方:

无法在对象'dbo.mytable'中插入具有唯一索引'ixmytable'的重复键行。

这是选择:

INSERT INTO mytable (id, idFK, data) 
VALUES ('6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3','F3696D77-AC4A-4235-B6CB-887D62FF860',6)

它显示了什么:

SELECT * FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3' AND idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860' AND data=3

为什么我收到此错误?

2 个答案:

答案 0 :(得分:1)

如果要从表中删除一行,则仅删除

DELETE FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3'

就够了。但是如果你想更新特定值,那么你可以试试

UPDATE mytable SET DATA = 6 WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3'

因为id是唯一标识符,所以它可用于唯一标识每一行。我认为最初在您的数据库中idFK列的值有一个空格,因此您会收到错误。

//Third Query
idFK=' F3696D77-AC4A-4235-B6CB-C887D62FF860'
      ^
//But First and second query
idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860'

答案 1 :(得分:0)

尝试在插入之前执行此操作:

SET IDENTITY_INSERT ON