Fremdschlüsselaktionen
Mit den Unterklauseln ON UPDATE
und ON DELETE
ist es möglich, eine Aktion für die betroffene(n) Fremdschlüsselspalte(n) festzulegen, wenn referenzierte Werte in der Mastertabelle geändert werden:
KEINE AKTION
-
(Standard) - Nichts wird getan
CASCADE
-
Die Änderung in der Master-Tabelle wird an die entsprechende(n) Zeile(n) in der Child-Tabelle weitergegeben.Wenn sich ein Schlüsselwert ändert, ändert sich der entsprechende Schlüssel in den untergeordneten Datensätzen auf den neuen Wert;Wenn die Masterzeile gelöscht wird, werden die untergeordneten Datensätze gelöscht.
SET DEFAULT
-
Die Fremdschlüsselspalten in den betroffenen Zeilen werden auf ihre Standardwerte gesetzt wie sie waren, als die Fremdschlüsseleinschränkung definiert wurde.
SET NULL
-
Die Fremdschlüsselspalten in den betroffenen Zeilen werden auf
NULL
gesetzt.
Die angegebene Aktion oder die Standardeinstellung NO ACTION
kann dazu führen, dass eine Fremdschlüsselspalte ungültig wird.Sie könnte beispielsweise einen Wert erhalten, der in der Mastertabelle nicht vorhanden ist, oder er könnte NULL
werden, während die Spalte eine NOT NULL
-Einschränkung hat.Solche Bedingungen führen dazu, dass die Operation in der Mastertabelle mit einer Fehlermeldung fehlschlägt.
...
CONSTRAINT FK_ORDERS_CUST
FOREIGN KEY (CUSTOMER) REFERENCES CUSTOMERS (ID)
ON UPDATE CASCADE ON DELETE SET NULL