簡體   English   中英

為多個查詢鎖定 innoDB 中的行

[英]Locking rows in in innoDB for multiple queries

所以我正在查看 innoDB 的行鎖定,看起來SELECT...FOR UPDATE是 go 來查詢鎖定。 在我的文件中,我有三個查詢。 兩次更新,然后一次插入。 有沒有辦法確保對於每個連接,行都被鎖定,然后這三個查詢可以在其他人更改行之前運行?

以下是查詢:

"UPDATE table SET r=r+2 WHERE r > '$l' AND home='$home'";

"UPDATE table SET l=l+2 WHERE l > '$l' AND home='$home'";

"INSERT INTO table (value, home, l, r, value2)
            VALUES ('$value', '$home', '$l'+1, '$l'+2, value2) ";

澄清一下:我想鎖定 home=$home 的所有行,然后在三個查詢后釋放它們。 我想確保在任何其他連接可以對這些行具有寫入能力之前執行這三個查詢。

使用事務,您的更改在您明確提交之前對其他人不可見。

更多信息: 關於事務的 msql 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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