5

カスケード削除と外部キー参照について質問があります。次のテーブルを想定してみましょう。

ITEMX                 | ITEMY
------------------    | ------------
ID    FKID_ITEMY      | ID
1     1               | 1
2     1               |

FKID_ITEMY にはカスケード削除があり、ITEMX の行を削除すると、ITEMY の対応するアイテムが削除されます。私の質問は:

ITEMX の行 ID 1 を削除すると、ITEMY の行 ID 1 も削除されますか?

それとも、行 ID 2 がまだ ITEMY の行 ID 1 を参照しているため、ITEMX の行 ID 1 を削除しますか?

つまり、ITEMY の行 ID 1 への参照がなくなったら削除されるようにしたいと考えています。カスケード削除はこれを達成しますか?

4

1 に答える 1

11

削除を後方にカスケードするという概念があります。

カスケード削除オプションで FKID_ITEMY を宣言しても、ID=1 の ITEMX を削除しても何も起こりません。

カスケード動作は、ITEMY で参照されている行が削除された場合の動作に影響します。ID=1 の ITEMY を削除すると、その行を参照する ITEMX の両方の行が削除されます。

従属テーブルの外部キーでカスケード動作を宣言します。これは、別の従属テーブル ITEMZ が存在する可能性があり、別の動作をさせたいからです。たとえば、ITEMY の行を削除しようとした場合、ITEMZ に参照行が存在する場合は削除をキャンセルしたいとします。

于 2010-06-25T03:03:01.680 に答える