我有架构迁移代码,它使用数据库表 (MIGRATIONS) 来记录在架构上运行了哪些迁移。在将新迁移运行到架构中时,代码会锁定表,因此集群中的其他实例也不能执行迁移,检查需要运行哪些迁移并运行它们。我使用这个 sql 锁定 MIGRATIONS 表:
lock tables migration_log write;
如果我的一个迁移最终创建了一个表,我会收到以下错误:
Table 'tbl_name' was not locked with LOCK TABLES
我读到,一旦您发出 LOCK TABLES 语句,您就只能处理该语句中提到的表。
所以,底线:如何在 mysql 中锁定一个表,同时创建另一个表?
如果做不到这一点,您能否建议另一种方法来实现我想要实现的目标?