MYSQL如何确保一个接一个地运行一个查询

时间:2011-08-19 11:36:58

标签: mysql concurrency transactions locking

我遇到并发连接问题。我如何确保一个查询在一个接一个地运行,而没有来自其间的其他连接的查询。我可能需要某种锁定,但是什么样的? ..要么?交易?

3 个答案:

答案 0 :(得分:3)

SERIALIZABLE 隔离级别运行2个查询 - 通过锁定他们访问的每个记录,它保证2个查询的结果与执行的唯一2个查询完全相同,但是没有锁定表/表的其余部分。

答案 1 :(得分:1)

如果您使用的是innodb存储引擎,则可以使用事务来实现您的需求。只需在两个查询之前执行BEGIN,然后在它们之后执行COMMIT。

答案 2 :(得分:0)

您可以使用LOCK TABLE阻止其他用户更新该表。

链接
http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html