2011-01-04 24 views
2

に失敗し、私は最後に列を追加しようとしている間、私はALTER文は、私は、主キー&インデックスと15Kレコードを持つテーブルを持っているmysqlの

Error Code : 1205 
Lock wait timeout exceeded; try restarting transaction 


Alter table <tablename> add <columnname> varchar(50); 

任意のアイデアを得ますか?ありがとう。

+2

これは、他のアクティビティが同時に実行されているライブデータベースですか?変更を行うためにテーブルをロックしようとしているようですが、他のプロセスがそれを使用しているのでできません。 –

+0

他に何が起こっているのかについての情報がなくても、質問は答えられません。サーバーを停止して再起動します。 - それはロックを取り除くでしょう! –

答えて

3
  1. 同じ 構造の新しいテーブルを作成します。
  2. 新しいテーブルに列を追加します。
  3. 古いテーブル のデータを新しいテーブルに挿入します。
  4. 古いテーブルの名前をold.bakに変更します。
  5. 新しいテーブルの名前を古い テーブルの名前に変更します。
  6. すべて正常だった場合は、 old.bakを削除してください。
+0

ありがとうございます、他の方法がありますか? – Sharpeye500

+0

ええ、あなたが最初に試すことができる他のものがたくさんあります。しかし、これ以上の情報がなければ、これはうまくいくはずです。 – Konerak

関連する問題