参照整合性を維持するために、複数のテーブルに外部キー制約を設定しています 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それらを取り除いてほしい。