InnoDBの外部キーを削除する。
外部キーの削除がALTERのリファレンスに無かったんで調べてみたら過去のニュースにヒントがあった。
InnoDB が ALTER TABLE DROP FOREIGN KEY をサポートするようになった。外部キーを破棄する場合は、SHOW CREATE TABLE を使って、内部で生成された外部キー ID を検出する必要がある。
-- 外部キーID名を参照する。 SHOW CREATE TABLE tbl_title;
↑を実行すると↓の結果が返ってくる。この場合だと外部キーIDはfk_tbl_title_tbl_categoryになる。
: CONSTRAINT `fk_tbl_title_tbl_category` FOREIGN KEY (`category_id`) REFERENCES `tbl_category` (`id`), :
っで、以下のように指定してやると外部キーが消せると。
-- 外部キーID名がfk_tbl_title_tbl_categoryだったので、指定して削除 ALTER TABLE tbl_title DROP FOREIGN KEY fk_tbl_title_tbl_category;