より単純なケースでは、レコードが子から削除され、参照している叔父がいる場合はどうなりますか?それは指定されていないので、とにかく制約は失敗します。
子を削除してもその叔父が削除されない場合、代わりに何が起こりますか? Uncle.childidをnullにすることはできません。
必要なのは、次の3つのうちの1つです。
- Uncle.childidはnullにすることができ、childidにはON DELETESETNULLが必要です。
- Uncle.childidをnullにすることはできません。また、childidにONDELETECASCADEが必要です。
- ChildidはUncleに属していないため、ChildとUncleの両方に対するONDELETECASCADE外部キー制約を持つChildsUncle関係が必要です。 Uncleidは、その関係の候補キーになります(つまり、一意である必要があります)。