ERROR 1025 (HY000): Error on rename of...(errno: 150)
久しぶりにMySQLのあるテーブルをアップデートしようとしたら、
ERROR 1025 (HY000): Error on rename of...(errno: 150)
と出る。
どうも他のデータから参照されているテーブルに追加、編集、削除ができないようにロックがかかっているらしい。
ALTER TABLE tablename DROP FOREIGN KEY associate_id
とやっても駄目だった。
これはコラム名ではなく、キーの値を入れないと駄目なためだ。
show create table
で、
CONSTRAINT `FK5DB0983915A5EB1` FOREIGN KEY (`associate_id`) REFERENCES `genre` (`id`)
と、CONSTRAINTになっているキーを捜し、それを元に、
ALTER TABLE tablename DROP FOREIGN KEY `FK5DB0983915A5EB1`
とやるとちゃんと外部制約をはずすことができる。
それでテーブルの編集やら削除やらができるようになる。