Hallo,
Ich möchte mit einem Trigger einer Spalte "pos" den zweifachen Wert der "id" Spalte zuweisen und verwende dafür folgenden ON INSERT trigger:
Leider funktioniert das ganze nicht, in Startkladde.pos steht immer jener wert, den ich eingefügt habe.Code:CREATE FUNCTION set_pos() RETURNS trigger AS $emp_stamp$ BEGIN NEW.pos:=NEW.id*2; RETURN NEW; END; $emp_stamp$ LANGUAGE plpgsql; CREATE TRIGGER kladde_insert_pos BEFORE INSERT ON Startkladde FOR EACH ROW EXECUTE PROCEDURE set_pos();
Habts ihr eine Idee was ich falsch mache?
Danke im Vorraus, Clemens
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Nun, PG unterscheidet nicht zwischen Groß- und Kleinschreibung, es wird alles zu Kleinschreibung konvertiert, was nicht expliziet durch "ABC" in Großbuchstaben definiert wurde.
Daher meine wilde Vermutung, daß die Tabelle vielleicht in der Tat mit S und nicht mit s beginnt. In diesem Falle würde der TRIGGER natürlich nicht feuern.
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Wenn der Tabellenname falsch geschrieben wäre, könnte der Trigger schon nicht angelegt werden.
Das würde in einer Fehlermeldung enden.
Kannst du in deiner Triggerfunktion mal eine Debuggingausgabe ausgeben? Mit RAISE NOTICE?
Dann siehst du ja, ob der Trigger überhaupt aufgerufen wird.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen