- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- MySQL/SQL/外部キー/外部キーを無視してテーブルを更新する へ行く。
- 1 (2019-09-18 (水) 14:45:28)
外部キーを無視してテーブルを更新する
外部キーのあるテーブルはそのままでは削除できない
mysql> CREATE TABLE t1 ( id int, PRIMARY KEY (id) ); mysql> CREATE TABLE t2 ( id int, t1_id int, FOREIGN KEY (t1_id) REFERENCES t1 (id) ON DELETE CASCADE ); mysql> DROP TABLE t1; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails
外部キーを無視してテーブルを削除する
mysql> SET FOREIGN_KEY_CHECKS = 0; mysql> DROP TABLE t1; mysql> SET FOREIGN_KEY_CHECKS = 0;
SET foreign_key_checks = 0 を実行しないかぎり、FOREIGN KEY 制約によって参照されるテーブルに対して DROP TABLE を発行できません。テーブルを削除すると、そのテーブルを作成するために使用されたステートメントで定義されていた制約もすべて削除されます。