From: | Alvaro Uría <fermat(at)rigel(dot)deusto(dot)es> |
---|---|
To: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Crear un evento cada vez que se hace una UPDATE |
Date: | 2008-07-17 10:26:12 |
Message-ID: | 487F1E44.3060805@rigel.deusto.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola de nuevo,
Lo primero, muchas gracias por la ayuda. Espero que éste sea el último
mensaje sobre este tema... a partir de aquí trastearé solo.
El 17/07/08 00:16, Jaime Casanova escribió:
> de poder puedes, pero las reglas (RULE) en realidad son como macros
> que se expanden en linea (o al menos es una forma de explicarlo) y eso
> hace que puedan surgir problemas si una regla que se expande te agrega
> dos llamadas a la misma funcion volatil (randim(), nextval(), etc)
> cuando tu solo esperabas una...
Interesante :)
> quedaria asi:
> CREATE TRIGGER tresource_update BEFORE UPDATE ON TResource
> FOR EACH ROW EXECUTE PROCEDURE update_stamp();
[...]
> CREATE OR REPLACE FUNCTION update_stamp() returns trigger as $$
> begin
> NEW.uploaded = current_timestamp;
>
> return NEW;
> end;
> $$ language plpgsql;
>
Y si varias tablas tuviesen un atributo (cada una) que se tuviese que
comportar como el del ejemplo de arriba, ¿podría crear una trigger para
cada una del estilo,
CREATE TRIGGER tresource_update BEFORE UPDATE ON TResource
FOR EACH ROW EXECUTE PROCEDURE update_stamp(TResource.uploaded);
y luego crear una función genérica del estilo,
CREATE OR REPLACE FUNCTION update_stamp(inout fecha timestamp) returns
trigger as $$
begin
fecha = current_timestamp;
return NEW;
end;
$$ language plpgsql;
¿O debería crear una función distinta para cada trigger?
Gracias de nuevo.
Saludos,
Alvaro Uría
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos Mendez | 2008-07-17 14:41:37 | como almacenar numero grande sin redondeo? |
Previous Message | Juan Carlos Barranco de Paz | 2008-07-17 07:25:02 | RE: De informix a Postgresql |