参照整合性を維持するために、複数のテーブルに外部キー制約を設定しています ON CASCADE DELETE
。
ただし、開発環境で本番データセットのトリミング/サニタイズされたコピーを作成したい場合が主な例です。だから私は次のようなことができるようにしたいと思います:
DELETE FROM x WHERE foo = 'bar'
y
削除された行を参照する別のテーブルの行x
も削除されます。現在、私の制約が整っていると、これは次のように失敗します:
Cannot delete or update a parent row: a foreign key constraint fails
テーブルを変更せずにMySQLでこれを行う方法はありますか? DELETE CASCADE FROM x WHERE foo = 'bar'
Oracle や Postgres のようなものを漠然と覚えていますが、MySQL でこれを行う方法がわかりません。
私は知っていますが、それはぶら下がっている参照を;FOREIGN_KEY_CHECKS = 0
に残すだけです。y
それらを取り除いてほしい。