防止插入重复表行的策略

时间:2015-04-23 16:22:58

标签: mysql sql

情景:

用户A和B同时执行select id from Product where id = ?,如果没有结果,则两者都创建具有给定ID的新产品。

问题:

这可能会导致重复行的创建。

问题:

有哪些可能的策略来防止这种情况?我知道我可以使用复合/唯一键来保证这一点,但还有其他策略吗?是否有任何SQL语句来锁定具有相同参数的查询?

2 个答案:

答案 0 :(得分:2)

您可以使用unique constraints

ALTER TABLE Persons ADD UNIQUE (P_Id)

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

这样就不可能插入副本。

答案 1 :(得分:0)