【发布时间】:2016-02-28 09:06:04
【问题描述】:
我需要临时重命名一个表。这张表一直都有插入。所以想法是锁定表以进行写入和读取,然后刷新所有可能的挂起插入,然后重命名表,做一些事情,重命名表并解锁它,以便它再次可用。
应该采取哪些步骤来完成该(或最接近的)任务?
谢谢!
【问题讨论】:
标签: mysql locking flush unlock
我需要临时重命名一个表。这张表一直都有插入。所以想法是锁定表以进行写入和读取,然后刷新所有可能的挂起插入,然后重命名表,做一些事情,重命名表并解锁它,以便它再次可用。
应该采取哪些步骤来完成该(或最接近的)任务?
谢谢!
【问题讨论】:
标签: mysql locking flush unlock
好的,想通了。
lock tables sometable write;
flush tables sometable;
unlock tables; rename table `sometable` to `sometable_locked`;
-- do something useful
rename table `sometable_locked` to `sometable`;
或者
lock tables sometable write;
flush tables sometable;
alter table `sometable` rename to `sometable_locked`;
-- do something useful
unlock tables; alter table `sometable_locked` rename to `sometable`;
【讨论】: