1

我有架构迁移代码,它使用数据库表 (MIGRATIONS) 来记录在架构上运行了哪些迁移。在将新迁移运行到架构中时,代码会锁定表,因此集群中的其他实例也不能执行迁移,检查需要运行哪些迁移并运行它们。我使用这个 sql 锁定 MIGRATIONS 表:

lock tables migration_log write;

如果我的一个迁移最终创建了一个表,我会收到以下错误:

Table 'tbl_name' was not locked with LOCK TABLES

我读到,一旦您发出 LOCK TABLES 语句,您就只能处理该语句中提到的表。

所以,底线:如何在 mysql 中锁定一个表,同时创建另一个表?

如果做不到这一点,您能否建议另一种方法来实现我想要实现的目标?

4

1 回答 1

0

你真的需要锁定整张桌子吗?也许只是行锁定就足够了?

http://lists.mysql.com/cluster/4467

于 2012-12-20T10:08:05.667 回答