Mysql
 sql >> Datenbank >  >> RDS >> Mysql

In welcher Reihenfolge werden ON DELETE CASCADE-Einschränkungen verarbeitet?

Was passiert im einfacheren Fall, wenn ein Datensatz aus Child gelöscht wird und einen Verweis auf Onkel hat? Das ist nicht spezifiziert, also versagen die Einschränkungen dafür sowieso.

Wenn das Löschen eines Kindes seine Onkel nicht löscht, was passiert dann stattdessen? Uncle.childid darf nicht null sein.

Was Sie wollen, ist eines dieser drei Dinge:

  1. Uncle.childid kann null sein, und Sie möchten ON DELETE SET NULL für childid.
  2. Uncle.childid darf nicht null sein, und Sie möchten ON DELETE CASCADE für childid.
  3. Kind gehört nicht zu Uncle, und Sie möchten eine ChildsOncle-Beziehung mit ON DELETE CASCADE-Fremdschlüsseleinschränkungen für Child und Uncle. Uncleid wäre ein Kandidatenschlüssel für diese Beziehung (d. h. sie sollte eindeutig sein).