用戶A和B執行同時select id from Product where id = ?
,如果沒有結果,既創建具有給定的ID的新產品。
問題:
這可能會導致重複行的創建。
問題:
什麼是可能的策略,以防止這種情況?我知道我可以使用複合/唯一鍵來保證這一點,但是還有其他策略嗎?是否有任何SQL語句鎖定具有相同參數的查詢?
用戶A和B執行同時select id from Product where id = ?
,如果沒有結果,既創建具有給定的ID的新產品。
問題:
這可能會導致重複行的創建。
問題:
什麼是可能的策略,以防止這種情況?我知道我可以使用複合/唯一鍵來保證這一點,但是還有其他策略嗎?是否有任何SQL語句鎖定具有相同參數的查詢?
您可以使用unique constraints
ALTER TABLE Persons ADD UNIQUE (P_Id)
或
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
這樣,這將是不可能要插入一個重複。
放一個UNIQUE
關鍵的領域中的問題: https://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html
任何替代之外唯一約束? –