Stored Routine / Trigger

isilay

Neuer Benutzer
Beiträge
2
Hallo Leute,
Gegeben sind die zwei Tabellen:
Projekte: ProjID (Primary Key), Bezeichnung, Fach
Gruppe: grupID (Primary Key), Name , ProjID (Foreign key references Projekte(projID)
Die Aufgabe lautet:
wenn eine gruppe erfasst oder geändert wird, soll sichergestellt sein, dass die zu speichernde ProjID auch in der Tabelle Projekte persistent ist. Bei einem Fehler wird die Transaktion mit einer Fehlermeldung abgebrochen .

Für die gemeinsame Prüflogik soll eine MySQL Stored Routine geschrieben werden, die dann in den Triggern aufgerufen wird.

Wie würde die oben beschriebene Routine aussehen?
Ich danke im Voraus! :)
 
Werbung:
MySQL ist zwar in der Tat grottig, aber referentielle Integrität ist zumindest bei InnoDB bereits bekannt & implementiert, Du brauchst als keine extra TRIGGER, um RI sicherzustellen.
 
@akretschmer
Vielen Dank für die schnelle Antwort!
Leider muss die Aufgabe wie oben beschrieben gelöst werden. Das war eine Übungsaufgabe die wir vom Professor bekommen haben.
Wir haben zu fast jeder Aufgabe eine Lösung nur zu dieser nicht, deswegen glaube ich das eine ähnliche Aufgabe in der Prüfung kommen wird.:/
 
Zuletzt bearbeitet:
Ah so.

Dann wünsche ich Euch viel Spaß und Erfolg dabei. Kleiner Hinweis: Du solltest dann die Tabellen OHNE RI-Constraint definieren, damit Euer TRIGGER überhaupt eine Chance hat, das Licht der Welt zu erblicken. Oder den Constraint als Deferrable definieren und in der Transaktion auf Deferred setzen, damit er erst am Ende der Transaktion feuert und Euer Trigger schon eher. Aber ob MySQL das kann (es kann ja so vieles nicht...) weiß ich nicht.
 
Werbung:
Diese Art von Aufgaben bei Studenten sehe ich erschreckender weise sehr häufig (und nicht nur im MySQL Umfeld).
Ich frage mich was für ein Kraut die Professoren rauchen um auf solche vollkommen weltfremden Aufgaben zu kommen.

Es gibt wesentlich bessere Beispiele um Trigger und Prozeduren zu lehren und lernen als die Implementierung von referenzieller Integrität.
 
Zurück
Oben