基本上我有一個兩字段主鍵列(memberid,messageid)的表,我有一個存儲過程插入到該表中的新行。在插入之前檢查主鍵值是否比使用try-catch更快?
現在我檢查是否存在與PK的行,如果沒有,插入,但我已經遇到了情況,當該行被檢查之後和實際插入之前的不同進程插入時,我正在考慮一種替代方法。
我不想爲了性能的原因使用事務,所以我想把INSERT放入try-catch並且完全跳過檢查。如果該行已經存在,插入將會失敗,但會被「catch」無聲,這是可以的。
我的問題是 - 拋出一個錯誤,並使其成爲一個昂貴的操作?
相關:http:// stackoverflow。com/questions/3407857/only-inserted-a-row-if-its-not-already-there – 2011-03-16 20:49:24
你可以在那些具有忽略重複鍵的列上創建一個UNIQUE INDEX,所以你不必在以前檢查,也沒有做'TRY-CATCH' – Lamak 2011-03-16 20:50:20
@Lamar - 根據定義,PK是唯一的。這個事實對我有何幫助? – Andrey 2011-03-16 20:56:26