Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m290_guko:learningunits:lu08:aufgaben:a_fk_in_lu05 [2025/10/20 00:00] – alte Version wiederhergestellt (2025/10/19 23:59) gkoch | modul:m290_guko:learningunits:lu08:aufgaben:a_fk_in_lu05 [2025/10/27 11:02] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 17: | Zeile 17: | ||
| * Prüft, dass **Primärschlüssel vorhanden** sind (wie in LU05), aber **keine** Fremdschlüssel. | * Prüft, dass **Primärschlüssel vorhanden** sind (wie in LU05), aber **keine** Fremdschlüssel. | ||
| * Falls ihr neu starten wollt: erstellt die Tabellen nochmals wie in LU05 (PK ja, FK noch nicht) und füllt ein paar **Beispieldaten** ein (mind. 3 Zeilen pro Tabelle). | * Falls ihr neu starten wollt: erstellt die Tabellen nochmals wie in LU05 (PK ja, FK noch nicht) und füllt ein paar **Beispieldaten** ein (mind. 3 Zeilen pro Tabelle). | ||
| + | * PDF mit Schema zu den einzelnen Cases: {{ : | ||
| Zeile 33: | Zeile 34: | ||
| **SQL-Muster (anpassen): | **SQL-Muster (anpassen): | ||
| <WRAP center box round 80%> | <WRAP center box round 80%> | ||
| + | 1. Erstellen Sie eine neue Spalte für den Fremdschlüssel: | ||
| <code sql> | <code sql> | ||
| - | ALTER TABLE < | + | ALTER TABLE TABLE_NAME |
| - | ADD CONSTRAINT fk_<kind>_<eltern> | + | ADD COLUMN neue_spalte DATENTYP [AFTER bestehende_spalte]; |
| - | FOREIGN KEY (< | + | </code> |
| - | REFERENCES | + | 2. Setzen Sie die soeben erstellte Spalte als Fremdschlüssel (Foreign Key): |
| + | <code sql> | ||
| + | ALTER TABLE kind_tabelle | ||
| + | ADD FOREIGN KEY (neue_spalte) | ||
| + | REFERENCES eltern_tabelle(primaerschluessel_spalte) | ||
| ON DELETE RESTRICT | ON DELETE RESTRICT | ||
| ON UPDATE RESTRICT; | ON UPDATE RESTRICT; | ||
| Zeile 53: | Zeile 59: | ||
| ==== 3) DML testen – RESTRICT erfahrbar machen ==== | ==== 3) DML testen – RESTRICT erfahrbar machen ==== | ||
| + | //DML = Data Manipulation Language -> Daten einfügen, ändern, löschen// | ||
| + | |||
| **So gehen Sie vor (für euren gewählten Case):** | **So gehen Sie vor (für euren gewählten Case):** | ||
| - | 1. **Daten anlegen** | + | 1. **Daten anlegen** |
| 2. **Tests A–D** ausführen und das Verhalten beobachten (Kommentar sagt, was passieren soll). | 2. **Tests A–D** ausführen und das Verhalten beobachten (Kommentar sagt, was passieren soll). | ||
| Zeile 254: | Zeile 262: | ||
| </ | </ | ||
| - | *Einsatzbeispiel: | + | //Einsatzbeispiel: |
| **CASCADE** verwenden wir bevorzugt bei **Zwischentabellen** (N:M). | **CASCADE** verwenden wir bevorzugt bei **Zwischentabellen** (N:M). | ||
| - | Falls euer Case eine N: | + | Falls euer Case eine N: |
| Für reine 1: | Für reine 1: | ||