如何在MySQL中实现“read then write lock”?

时间:2011-02-24 20:04:55

标签: mysql

我有一个使用MySQL数据库的PHP应用程序。我想阻止两个请求执行相同(重复)操作。

我想在记录上设置一个字段,以便第一个请求可以将其设置为true,并让其他请求知道它“正在处理”。

if ($currentlyBeingProcessed) {
    //get out of here
} else {
    //lock the row for processing
}

我意识到我可能会遇到两个请求非常接近的情况,他们都可以在第一个请求写入数据库之前“正在处理”该记录“正在处理” ”

在第一个请求成功写入数据库之前,MySQL是否有办法锁定读取它的其他请求中的行?我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

SELECT ... FOR UPDAT E可能就是你要找的东西。