約束強制唯一性在交易過程中的特定點執行。
1。修改多行的更新語句:
修改涉及主鍵交換的多行的 UPDATE 語句即使使用 INITIALLY IMMEDIATE 約束也會成功,因為約束檢查被推遲到該語句之後。
2.資料修改 CTE:
資料修改 CTE 的行為類似,但衝突更新除外,更新會因非延遲主鍵衝突而失敗。
3.事務中的多個UPDATE 語句:
如果沒有SET CONSTRAINTS,事務中違反唯一約束的多個UPDATE 語句將失敗,因為在每個語句之後執行檢查。
注意: UNIQUE 和 PRIMARY KEY 約束被特殊對待,非延遲約束是每次修改後立即檢查。
到為了實現符合標準的行為,DEFERRABLE 約束應聲明為 INITIALLY IMMEDIATE,但不能延遲。與立即唯一性檢查相比,這可能會降低效能。
DEFERRABLE 約束不能用於外鍵引用,因為引用的欄位必須是不可延遲的唯一或主鍵約束。
以上是延遲和立即約束如何影響資料庫事務中的主鍵和唯一鍵強制執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!