使用锁定/解锁来更改表格

时间:2012-01-09 16:57:39

标签: mysql

有人可以解释为什么我收到这个错误:

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锁定”

1 个答案:

答案 0 :(得分:0)

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

  

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