2012-01-09 5 views
1

のロックを解除し、私はこのエラーを受けてる理由を誰かが説明できる:テーブルの変更は

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; 

追加ライン上のエラーポイント:ここで

Table 'last' was not locked with LOCK TABLES 

は、クエリが次々に実行されます列(id)が、削除の直後にunlockステートメントを置くと、すべてエラーなしで動作します。私はちょうど1つのテーブルを最後にロック解除できないのは本当ですか?それは

+1

A ALTER TABLE文は自動的に自動的にテーブル –

+0

をアンロックする。しかし、それはそのエラーを与える理由

If you use ALTER TABLE on a locked table, it may become unlocked. For example, if you attempt a second ALTER TABLE operation, the result may be an error Table 'tbl_name' was not locked with LOCK TABLES. To handle this, lock the table again prior to the second alteration. See also Section C.5.7.1, “Problems with ALTER TABLE”.

2番目のALTERクエリ? –

+0

okですから、最後のunlock文を削除するだけです –

答えて

関連する問題