Funktion welche Wert in Tabelle auf vorhandensein prüft

Hallo

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!

Danke im Voraus!

inoup

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.

Guck mal in der Doku nach Trigger und pl/pgsql

Crypi

danke für die schnelle Antwort.

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 :?

Inoup

mal dumm gefragt: wieso willst du überhaupt einen trigger bauen wenn du das ganze mit einem foreign key lösenkannst?!

cu tb.

Und was macht er erst, wenn er im Trigger feststellt, dass das Kind ein Waise ist?


mfg

fristo

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!

:smiley: :smiley: :smiley:

mfg

Inoup

Hallo inoup,

an Deiner Konstruktion ist was faul. Derartige Beziehungen baut man mittel Fremdschlüssel auf. Das sieht dann etwa so aus:

create table    parent
                &#40]

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

hat sich überschnitten, war leider zu spät.


mfg

fristo