所以我正在研究 innoDB 的行锁定,似乎SELECT...FOR UPDATE
是去查询锁定。在我的文件中,我有三个查询。两次更新,然后是插入。有没有办法确保每个连接的行都被锁定,然后这三个查询可以在其他人可以更改行之前运行?
以下是查询:
"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 的所有行,然后在三个查询后释放它们。我想确保在任何其他连接可以对这些行具有写入能力之前执行三个查询。