Habe ein Datenbankprojekt am laufen und stehe momentan ziemlich an den Grenzen meiner noch jungen Datenbankerfahrung.
Ich möchte eine Eltern/Kind Beziehung in einer Tabelle prüfen, 1. Attribut FileID 2. Attribut ParentID. Bei einem Insert in diese Tabelle soll mir die Funktion überprüfen ob die neu eingegebene ParentID als FileID bereits vorhanden ist!
Ich konnte mein Problem hoffentlich genügend deutlich schildern und wäre froh wenn mir jemand einen Vorschlag machen kann, wie ich das realisieren könnte!
mit welcher Sprache willst du den Trigger programmieren und was soll passieren wenn die ParentId schon vorhanden ist?
bei pl/pgsql kannst du new.Spaltenname verwenden um nach/vor dem Insert auf den neuen Wert (in deinem Fall der ParentId) zuzugreifen, damit kannst du dann Select Abfragen innerhalb deiner Trigger-Funktion ausführen.
Möchte PL/PGSQL verwenden. mit NEW.ParentID habe ich probiert, mein Problem ist nun wie soll ich das mit den ‘alten’ Werten in der Tabelle vergleichen? OLD funktioniert nicht?!
Falls die NEW.ParentID nicht als FileID vorhanden ist darf der Insert nicht ausgeführt werden.
Habe Doku schon durchforstet, aber leider werde ich dadurch auch nicht schlauer :?
Die Lösung liegt meist so nahe :roll:
Manchmal sieht man vor lauter Wald die Bäume nicht mehr!
Foreign Key ist die Lösung die ich frecherweise einfach ignoriert habe.
Danke für eure schnelle Hilfe, Profis an die Macht!
an Deiner Konstruktion ist was faul. Derartige Beziehungen baut man mittel Fremdschlüssel auf. Das sieht dann etwa so aus:
create table parent
(]
Und so wie das in der Natur auch ist, zuerst existieren die Eltern und erzeugen dann ihre Kinder. Die Frage, die sich jetzt stellt, lautet: wo kommen die Kinder her, die keine Eltern haben und was willst Du mit diesen Kinder machen (im Sinne einer Datenverarbeitung).
mfg
fristo