我有一個場景,我在該表中插入了多個記錄,即使執行了檢查,我也會解釋下面的代碼流。在事務中重複插入
BEGIN Transection;
var model = select id from table1 where outlet_code = 123 and survey_id = 5
if(model){
throw new Exception("Outlet is already Surveyed.");
}else{
INSERT Record into the table
}
Commit Transection;
問題: 我從移動端獲得多個請求上傳的調查,但是當我用同一個插座代碼多個請求出現問題。
First Request outlet_code = 123abc and survey_id = 5
Second Request outlet_code = 123abc and survey_id = 5
點是第二個請求不應然而,在某些情況下,這兩個記錄插入到了在「表1」
我測試了此方案中的代碼中插入,但我得到的例外,這是好的,但在數據庫中有違反這種條件的記錄,並且我在數據庫中得到了兩條記錄
好心地暗示我做錯了什麼,我只是有一個想法,它可能是事務提交順序的問題,但我不'不知道如何解決這種情況。
數據庫爲SQL Server 2008的
'PRIMARY KEY WITH(IGNORE_DUP_KEY = ON)'? – Devart
你使用的是什麼db 1)mysql 2)postgresql or ???? – Monty
如果您使用的是postgresql,那麼使用:UPSERT:如果數據已經退出,它將被修改,如果它不會插入表 – Monty