我想在用户运行时插入具有唯一字段的表中。
例子:
- b 是唯一字段。
- 在我的 c# 代码中,我正在这样做;
- get_max(b);
- y = b+1;
- 插入 table1 (a, b, c, d) 值 (@x, @y, @z, @t)
- 但是当我想插入时,用户正在使用这个表。所以我看到“b”字段的重复记录错误。
我可以在插入之前分配一些记录还是我能做什么?
我想在用户运行时插入具有唯一字段的表中。
例子:
我可以在插入之前分配一些记录还是我能做什么?
您不能在插入之前分配记录,您要么必须锁定表,要么将插入放入带有重试逻辑的 try catch 块中。
例如;
int maxRetries = 3;
for (int i = 0; i < maxRetries; i++)
}
try
{
//insert
break;
}
catch (Exception e)
{
y = get_max(b) + 1; //get the max again since the failure is due to
// another record incrementing that value
if (i == maxRetries - 1)
throw e;
// all retries failed so it's time for that exception to bubble up
}
}