LU08b – Fremdschlüssel & referentielle Integrität
Begriffe:
- Parent (referenzierte Tabelle): Continent, Country
- Child (referenzierende Tabelle): Country, Trip
- Referentielle Integrität (RI): FK-Werte im Child müssen auf existierende PK-Werte im Parent zeigen
(oder – wenn erlaubt – NULL sein).
Warum FKs?
- Verhindern „verwaiste“ Zeilen (z. B. Trip ohne gültiges Country).
- Regeln Verhalten bei Änderungen/Löschungen mit ON DELETE/ON UPDATE.
Syntax-Grundform:
CONSTRAINT fk_name FOREIGN KEY (child_col[, ...]) REFERENCES parent_table(parent_pk_col[, ...]) ON DELETE {RESTRICT|CASCADE|SET NULL} ON UPDATE {RESTRICT|CASCADE|SET NULL};
Tipps:
- Datentypen müssen zusammenpassen (z. B. beide `INT`).
- NO ACTION verhält sich in MySQL praktisch wie RESTRICT.
- SET NULL nur, wenn die FK-Spalte `NULL` zulässt.