【问题标题】:Altering tables with lock/unlock使用锁定/解锁更改表
【发布时间】:2012-01-09 16:57:39
【问题描述】:

有人可以解释我收到此错误的原因吗:

Table 'last' was not locked with LOCK TABLES

这是一个接一个地执行的查询:

LOCK TABLES last WRITE;
DELETE FROM last WHERE id < '30';
ALTER TABLE last DROP id;
ALTER TABLE last ADD COLUMN `id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);

UNLOCK TABLES;

添加列 (id) 的行的错误点,但是如果我在删除后添加解锁语句 - 一切正常,没有错误。我真的不能最后解锁一张桌子吗?它给了我其他表的错误,说同样的事情“表没有被 LOCK TABLES 锁定”

【问题讨论】:

  • A ALTER TABLE 语句自动自动解锁表
  • 但是为什么它在第二次 ALTER 查询中给出了这个错误?
  • 好的,所以我只需要删除我猜想的最后一个解锁语句?
  • 删除了最后一次解锁,它没有帮助,仍然:表'last'没有被LOCK TABLES锁定

标签: mysql


【解决方案1】:

http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html:

如果您在锁定的表上使用 ALTER TABLE,它可能会被解锁。例如,如果您尝试第二次 ALTER TABLE 操作,结果可能是错误 Table 'tbl_name' is not locked with LOCK TABLES。要处理此问题,请在第二次更改之前再次锁定表。另请参阅第 C.5.7.1 节,“ALTER TABLE 的问题”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多