我有一个场景,我在该表中插入了多个记录,即使执行了检查,我也会解释下面的代码流。在事务中重复插入
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