我已将 DB_1 中的 SOURCE 表中的一些记录移动到另一个 DB_2 中的 ARCHIVE 表中(即,将 SOURCE 中的记录插入到 ARCHIVE 中,然后从 SOURCE 中删除记录。)
我的 SOURCE 表具有以下索引创建为SOURCE_1
:
CREATE UNIQUE NONCLUSTERED INDEX SOURCE_1
ON dbo.SOURCE(TRADE_SET_ID, ORDER_ID)
问题是 - 当我尝试将行从 ARCHIVE 插入回 SOURCE 时,Sybase 抛出以下错误:
Attempt to insert duplicate key row in object 'SOURCE' with unique index 'SOURCE_1'
而且,当然,随后插入失败。
我确认我的 SOURCE 表没有这些重复项,因为以下查询返回空:
select * from DB_1.dbo.SOURCE
join DB_2.dbo.ARCHIVE
on DB_1.dbo.SOURCE.TRADE_SET_ID = DB_2.dbo.ARCHIVE.TRADE_SET_ID
AND DB_1.dbo.SOURCE.ORDER_ID = DB_2.dbo.ARCHIVE.ORDER_ID
如果上面的查询没有返回任何内容,那么这意味着我没有违反我对 2 列的唯一索引约束,但是 Sybase 抱怨说我有。
有没有人知道为什么会这样?