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