我需要知道查询是否会排队等待一个接一个地执行,或者这些查询是如何在SQL中执行的?
Ex: 假设一个表具有UserID,Name,PhoneNumber,Address
列的用户以下是要同时执行的2个查询
Update Users set Address='abc' where UserID=2
Update Users set Address='xyz' where UserID=2
在上述情况下会更新什么地址?是'abc'还是'xyz'?
答案 0 :(得分:1)
这是一场赛马。 MySQL服务器最后处理的任何查询都是确定列的结束值的查询。它将按顺序处理它们,即使您以同意的方式呈现它们也是如此。
没有"同时"更新任何ACID-compliant DBMS中的行。大规模的DBMS系统在内部遇到了几乎难以想象的麻烦,以确保这是真的。
如果您有这两个查询,另一方面,无论执行顺序如何,您都会获得相同的结束值。
UPDATE Users SET Count=Count+1 WHERE UserID=2
UPDATE Users SET Count=Count+2 WHERE UserID=2