我创建了一个表单,其中有两种类型的条目可以插入数据,一种是注册用户,另一种是未注册数据。
当我在两个不同的浏览器上打开相同的URL
并用相同的数据填写表单时,然后同时点击两个浏览器上的提交按钮,然后在C#
代码中我使用事务来避免歧义但是在这种情况下,两个数据都保存在数据库列中。
我尝试了很多东西,在提交之前进行了验证检查,但仍然没有积极的反馈。
请建议我在这种情况下该怎么做?
答案 0 :(得分:0)
在为特定用户插入数据时,您可以进一步检查该用户是否已存在数据。仅在没有记录时插入。
答案 1 :(得分:0)
您需要将检查和插入组合到同一事务中。否则,同时发生2次检查会从数据库中恢复正常,然后两者都进行更新,1次失败。
答案 2 :(得分:0)
即使您更新代码以在插入之前检查值,也可能在插入之前发生另一次插入。如果您确实希望保证数据的完整性,则需要在数据库中创建一些不允许冲突值的约束。这通常是主键,但如果没有,您可以在不希望允许重复值的列中创建唯一约束。然后,您只需处理可能由重复值引发的异常。