如何在mysql中临时锁定数据库

时间:2012-03-28 23:18:00

标签: mysql locking

我在我的MySQL服务器上使用Engine InnoDB。

我有一个补丁脚本来升级我的表,比如添加新列并填写默认数据。

我想确保没有其他会话使用数据库。所以我需要一种方法来锁定数据库:

  1. 锁定不应该踢出现有会话。如果他们是任何其他现有会话,则失败锁定并报告错误
  2. 锁需要阻止其他会话读/写/更改数据库。
  3. 非常感谢大家!

1 个答案:

答案 0 :(得分:1)

您无需担心自己锁定表格。正如MySQL文档(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)所说:

  

在大多数情况下,ALTER TABLE会制作原始文件的临时副本   表。 MySQL等待修改表的其他操作,   继续。它将更改合并到删除中   原始表,并重命名新表。虽然ALTER TABLE是   执行时,原始表可由其他会话读取。更新   并写入在ALTER TABLE操作之后开始的表   开始停止,直到新表准备好,然后是   自动重定向到新表,没有任何失败的更新。