私は2つのテーブルTable1とTable2を持っています。 table1列の主キーは、外部キーとしてtable2列に参照されます。外部キーのデータ削除でプライマリキーのエラーが表示される
これで、table1の外部キー列を持つtable2からレコードを削除するときに、制約違反のエラーメッセージを表示する必要があります。
私は2つのテーブルTable1とTable2を持っています。 table1列の主キーは、外部キーとしてtable2列に参照されます。外部キーのデータ削除でプライマリキーのエラーが表示される
これで、table1の外部キー列を持つtable2からレコードを削除するときに、制約違反のエラーメッセージを表示する必要があります。
私が出た場合、それを右の表の表1参照列B(例えば)で、あなたの列A(たとえば)2. 何が設定されている行うことができますON DELETE
NO ACTION
に該当する場合、テーブル2からのレコードの削除を防ぐことができますどのあなたが親を子テーブルからレコードを削除しない場合は、制約違反がない
ALTER TABLE TABLE1 ADD FOREIGN KEY (A) REFERENCES TABLE2 (B) ON DELETE NO ACTION;
:それの子供たちは、まだあなたがこれを行うことができ、テーブルに1
が存在します。子レコードを削除するのは正常です。たとえば、ユーザーテーブルと、ユーザーテーブルのユーザーIDを含む写真テーブルがある場合、そのアクションを停止して写真を削除するとエラーが表示されるのはなぜですか?子レコードを削除しても、親は削除されません。
本当にしたい場合は、トリガー(複数のレコード削除を処理するようにしてください)またはFKが必須フィールドである場合は、単にテーブルに削除する権限を与えないでください。これにより、削除しようとしてもレコードを削除できないことに注意してください。簡単な方法は、アプリケーションで使用できる削除機能を持たないことです。
私は、要件文書で必要とされていることのより良い定義を得るために本当に必要なものがあると思っています。何百ものデータベースを扱ってきた30年以上にわたり、私はこの機能を必要とする人は誰も見たことがありません。