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