在同一时间更新数据库中的记录

时间:2014-04-13 08:20:52

标签: php mysql sql database acid

我目前正在开发一个PHP Web应用程序并使用MySQL(xampp默认设置)作为我的dbms。我只是想知道如果有两个或更多客户端在同一时间向数据库发出UPDATE查询会发生什么?

For example 

**User 1 issue**
UPDATE info SET reply='helloworldOne' WHERE info_id = 1; 

**User 2 issue**
UPDATE info SET reply='helloworldTwo' WHERE info_id = 1; 

**User 3 issue**
UPDATE info SET reply='helloworldThree' WHERE info_id = 1;

and so on....

Codes in my web app
$postReply = $_POST['reply'];

$update = "UPDATE info SET reply='$postReply' WHERE info_id = 1;";
$result = mysqli_query($connection, $update);

1)在这种情况下会发生什么,因为所有UPDATE查询都在info_id 1上?
2)MySQL是否自动对info_id 1应用锁定?因为我没有将任何交易代码(例如beginTransaction)应用到我的PHP中。
3)MySQL会选择更新哪一个?其他客户会发生什么?

2 个答案:

答案 0 :(得分:2)

当您进行更新时,锁定会自动完成,因此基本上查询不会在同一时刻发生,它们将一个接一个地排队。 服务器将处理竞争条件,因此您无法预测示例中的最终结果。

答案 1 :(得分:0)

MySQL dbms处理这个问题。没什么可担心的