[英]Place a lock on a record when inserting in mysql during a transaction
如何在要插入MySQL表中的行上放置共享或排他鎖?
我想確保,如果我在事務期間插入一行,則另一筆事務不能在其余事務期間更改或刪除該行。
干杯!
您的表需要使用InnoDB或等效表。
然后執行以下操作:
START TRANSACTION;
SELECT something FROM sometable WHERE somecolumn = somekey
FOR UPDATE;
然后,您修改有問題的行。 最后,
COMMIT;
到此為止。
如果需要一致的閱讀,可以改用以下方法:
SELECT something FROM sometable WHERE somecolumn = somekey
LOCK IN SHARE MODE;
您不需要這樣做,因為在事務完成之前,事務中實際上不可見任何事務,包括記錄的創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.