制約の設定をしたものの、テストデータの投入段階でinsertを阻止してくる邪魔なforeign keyに悩まされたので、一時的に参照整合性の制約を削除します。
環境
MySQL 5.6
手順
まずは、テーブルに設定されている参照制約を確認しましょう。
mysql> SHOW CREATE TABLE something\G *************************** 1. row *************************** Table: something Create Table: CREATE TABLE `something` ( `id` int(11) NOT NULL AUTO_INCREMENT, `another_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `somedb_something_a08cee2d` (`another_id`), CONSTRAINT `somedb_another_id_3a4999a1_fk_somedb_another_id` FOREIGN KEY (`another_id`) REFERENCES `another_table` (`id`) ) ENGINE=InnoDB CHARSET=utf8mb4 1 row in set (0.00 sec)
上記の結果を見ると、something
テーブルの外部キーanother_id
が、another_table
のid
に外部キーとして制約が設定されています。
これを削除するには、CONSTRAINT
の次に書いてある文字列を指定して下記のコマンドを実行します。
mysql> ALTER TABLE something DROP FOREIGN KEY `somedb_another_id_3a4999a1_fk_somedb_another_id`;
もう一度SHOW CREATE TABLE
を実行すると、外部キー制約の項がなくなっていることが確認できます。