MySQL logo / tmolini
indexを色々試していたら削除出来なくなってしまいました
こんな感じで
~~~
mysql> ALTER TABLE table_name drop INDEX idx_id;
Cannot drop index ‘idx_id’: needed in a foreign key constraint
~~~
と出てしまい、indexが削除出来ません。
どうやら外部キーが影響しているみたいです
外部キーの確認
~~~
mysql> SHOW CREATE TABLE table_name;
—- 省略 —-
CONSTRAINT `table_name_ibfk_1` FOREIGN KEY (`id`) REFERENCES `foreign_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
—- 省略 —-
~~~
多分こいつが原因ですね
あとで戻さなきゃ行けないのでコピっておきます
外部キーの削除
~~~
mysql> ALTER TABLE table_name drop FOREIGN KEY table_name_ibfk_1;
Query OK, 130380 rows affected (9.34 sec)
Records: 130380 Duplicates: 0 Warnings: 0
~~~
削除出来ました、indexの削除出来るか試してみます
indexの削除
~~~
mysql> ALTER TABLE table_name drop INDEX idx_id;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
~~~
ようやく削除できた・・・色々試したいのにいちいちこれをしなきゃ行けないのは大変だ・・・
外部キーを戻しておしまい
~~~
mysql> alter table table_name add foreign key FOREIGN KEY (`id`) REFERENCES `foreign_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
Query OK, 130380 rows affected (8.80 sec)
Records: 130380 Duplicates: 0 Warnings: 0
~~~
コメント