我在我的MySQL服务器上使用Engine InnoDB。
我有一个补丁脚本来升级我的表,比如添加新列并填写默认数据。
我想确保没有其他会话使用数据库。所以我需要一种方法来锁定数据库:
非常感谢大家!
答案 0 :(得分:1)
您无需担心自己锁定表格。正如MySQL文档(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)所说:
在大多数情况下,ALTER TABLE会制作原始文件的临时副本 表。 MySQL等待修改表的其他操作, 继续。它将更改合并到删除中 原始表,并重命名新表。虽然ALTER TABLE是 执行时,原始表可由其他会话读取。更新 并写入在ALTER TABLE操作之后开始的表 开始停止,直到新表准备好,然后是 自动重定向到新表,没有任何失败的更新。