1

カスケード削除がどのように機能するかを理解しようとしています。大まかな概念は知っていますが、詳細はわかりません。

3 つのテーブルがあります (a)||---|<(B)>o---||(C)

表 A:

Aid
Tag

表 B:

Aid (f)
Cid (F)

表 C:

Cid
Other
  • テーブル A の行には、テーブル c への参照が少なくとも 1 つ含まれている必要があります。そうでない場合は、削除する必要があります。
  • テーブル A の行は、テーブル C が存在しないタグを作成しようとした場合にのみ作成されます。テーブル C がそのタグを削除し、テーブル C の他の行がそのタグを参照していない場合、タグを削除する必要があります。表 C の別の行がそのタグを参照している場合、そのタグは削除しないでください。

カスケードを削除するようにテーブル B [Aid] を設定すると、次のようになります。

  1. テーブル A のタグが削除されると、テーブル B のすべてのリンクが自動的に削除されます
  2. tagz に属するテーブル B から行を削除します。表 B には、tagz を参照する別の行があります。その削除により、tagz も削除されますか、それとも行が参照している限り tagz は残りますか?
4

1 に答える 1

5

テーブル A への外部キーのカスケードを削除するようにテーブル B を設定した場合、タグが削除されると、テーブル B の対応するレコードが削除されます。テーブル A にはテーブル B への参照または外部キーがないため、テーブル B の削除はテーブル A に影響しません。

于 2013-02-08T02:04:41.147 に答える