我有這個TSQL代碼來檢查'sadsadsad'是否存在,是否存在並將其插入到表中。在多線程環境中將記錄插入到數據庫表中
if not exists(select id from [ua_subset_composite] where ua = 'sadsadsad')
begin
insert into [ua_subset_composite]
select 'sadsadsad',1,null,null,null,null
end
我擔心的是,在生產的地方會有同時運行多個線程,可能會出現一種情況,記錄會滑通之間的不存在選擇和插入。
我不希望添加的列,不知道的唯一約束,如果我能改善這個SQL代碼,以便它會保證唯一性
這將是有趣的,知道你爲什麼不想在顯然應該是唯一的列上添加一個'UNIQUE'約束?如果重複次數很少,那麼只要嘗試插入並捕獲由此產生的錯誤即可,這是一種合理的方法。 – Pondlife
使用唯一約束是解決此問題的唯一明智的解決方案。 –
+1的獨特約束...我可以問爲什麼你想避免這種情況? –