Mit Trigger in eine Spalte schreiben.

Hallo,
mit dem ‘POINT’ hat diese Funktion Probleme.

ERROR: syntax error at or near “POINT”
LINE 5: …e public.geom_update set the_geom = geomfromtext(‘POINT(’||x…

CREATE FUNCTION mfg_new()RETURNS trigger AS '
DECLARE
  the_geom geometry;
BEGIN
  update public.geom_update set the_geom = geomfromtext('POINT('||x||' '||y||')',4326);
END;
'LANGUAGE 'plpgsql';

CREATE TRIGGER mfg_insert AFTER INSERT 
ON public.mfg FOR EACH STATEMENT 
EXECUTE PROCEDURE mfg_new();

Die Funktion soll nach einem INSERT eine Funktion ausführen um damit eine Spalte zu befüllen.

Verwende $$-Quoting, damit dürfte es besser gehen. Dein Problem ist, daß sowohl der Body der Function als auch der String-Parameter ’ verwenden. Welch altes Lehrbuch verwendest Du?


Andreas

Google findet ‘leider’ alles. Kennst Du ein gutes, welches Trigger behandelt?

Hach, ist das soo schwer? Das Handbuch hat ein extra (und umfangreiches) Kapitel, wie man Funktionen erstellt.

Z.B. hier: PostgreSQL: Documentation: Manuals: Structure of PL/pgSQL oder PostgreSQL: Documentation: Manuals: Declarations

Und da schaust einfach mal, wie dort Funktionen definiert sind. Hint: achte auf $$ …

Andreas

Hallo,

ich bekomme es leider nicht hin…

Nach einem Insert soll eine eine Funktion auf eine 3.Spalte durchgeführt werden.

A B C
1 1 A+B

Beispiele gibt es zwar. Hier wird ein Erg aber in eine seperate Tabelle geschrieben.

Gruß
Karl

Geht es immer noch um die Funktion?

Tausche in der ersten Zeile nach dem AS das ’ gegen $$ und weiter unten vor LANGUAGE das ’ auch gegen $$.

Andreas