簡體   English   中英

在事務期間插入mysql時將記錄鎖定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM