如何在mysql中锁定表并创建另一个表

时间:2012-12-20 09:52:25

标签: mysql

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

lock tables migration_log write;

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

Table 'tbl_name' was not locked with LOCK TABLES

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

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

如果做不到,你能否提出另一种方法来实现我想要实现的目标?

1 个答案:

答案 0 :(得分:0)

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

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