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 は違反していると不平を言っています。
なぜこれが起こっているのか、誰にもアイデアがありますか?