From: | emilio alvarez <dr7tbien(at)terra(dot)es> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Un trigger sencilla que no hay manera ade que funcione |
Date: | 2004-10-12 21:46:36 |
Message-ID: | 416C50BC.2040103@terra.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Tengo una tabla llamada articulos en la que uno de los campos se llama
fecha_acceso. Además de esta tabla tengo varias más con el mismo campo
llamado fecha_acceso. En este campo meto la ultima fecha de acceso o
actualización de esa fila de la tabla. Hasta aquí todo bien. Me miro el
manula de los triggers y creo mi primera función y el primer trigger,
los cuales os los escribo a continuación:
linea 1 CREATE FUNCTION actualizar_fecha() RETURNS TRIGGER AS '
l2 BEGIN
l3 UPDATE TG_RELNAME SET
NEW.fecha_acceso=DATE_PART(''epoch'', CURRENT_TIMESTAMP) WHERE id=OLD.id;
l4 RETURN NULL;
l5 END;
l6 ' LANGUAGE 'plpgsql';
l7 CREATE TRIGGER trigger_fecha AFTER UPDATE ON articulos
l8 FOR EACH ROW
l9 EXECUTE PROCEDURE actualizar_fecha();
Como resultado, psql me dice "CREATE TRIGGER". El caso es que cuando voy
a actualizar una fila de la tabla articulos, me dice psql:
WARNING: Error occurred while executing PL/pgSQL function actualizar_fecha
WARNING: line 3 at SQL statement
ERROR: parser: parse error at or near "$1" at character 23
Creo que la linea 3 se corresponde con l3. He intentado varias cosas.
POr ejemplo en lugar de poner TG_RELNAME que supuestamente hace
referencia al nombre de la tabla que invoca el trigger he escrito
'articulos'. Igualmente con resultados desastrosos. Bueno, espero alguna
aclaración sobre esto que la verdad me tiene sumido en una gran incógnita.
dr7tbien
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2004-10-12 21:51:41 | Re: Un trigger sencilla que no hay manera ade que funcione |
Previous Message | Alvaro Herrera | 2004-10-12 21:17:36 | Re: Un trigger sencilla que no hay manera ade que funcione |