0

タイトルで申し訳ありませんが、名前の付け方がわかりませんでした..

私は C# を使用しており、WinForms アプリケーションを使用しています。2 つのテーブルがあり、それぞれに主キーがあり、これらの 2 つのテーブルは見知らぬ人です。これは、それらの間を接続する 3 番目のテーブルがあることを意味します。3 番目のテーブルには列があります: テーブルの A 主キーとテーブルの B 主キー。

3 番目のテーブルから 1 行を削除すると、テーブル A と B の関連データも削除されるのでしょうか?

4

4 に答える 4

6

オプションを使用して外部キー制約を作成したON DELETE CASCADE場合、はい、他のテーブルの関連する行が削除されます。

オプションなしで外部キー制約を作成した場合ON DELETE CASCADE、DBMS は元の行をまったく削除できないようにします。

外部キー制約を作成しなかった場合、元の行のみが削除されます。

カスケード削除オプションの使用例については、この SO 回答を参照してください。

于 2013-03-11T20:55:22.083 に答える
1

いいえ、3 番目のテーブルは、テーブル A と B の参照を格納する関連テーブルではありません。

ただし、テーブル A でレコードが削除され、関連付けられたテーブル C に参照がある場合、別の方法で機能します。カスケード オプションに応じて、テーブル C のレコードも削除されます。カスケード オプションが記載されていない場合は、例外が発生します。

于 2013-03-11T20:54:56.717 に答える
1

外部キー制約のため、SQL Server では 3 番目のテーブルから行を削除できません。最初にテーブル A と B から 3 番目のテーブルを参照する値を削除してから、3 番目のテーブルから削除する必要があります。

于 2013-03-11T20:55:52.167 に答える
0

いいえ、3 番目のテーブルはテーブル a とテーブル b の関連付けテーブルであるため、削除が 3 番目のテーブルにある場合、テーブル a とテーブル b からのレコードは削除されません。

于 2013-03-11T20:55:10.200 に答える