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
signature.asc
Description: OpenPGP digital signature
