Ich möchte mit einem Trigger einer Spalte “pos” den zweifachen Wert der “id” Spalte zuweisen und verwende dafür folgenden ON INSERT trigger:
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();
Leider funktioniert das ganze nicht, in Startkladde.pos steht immer jener wert, den ich eingefügt habe.
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.