El 13 de mayo de 2009 11:16, Cesar Erices <[email protected]> escribió:

> yo uso ambas, por razones laborales, en todo caso la generacion de un
> triggers en postgres es algo como esto
> por ejemplo tengo una tabla reserva que quiero que al insertar un registro,
> automaticamente a traves de un triggers inserte el mismo registro en otra
> tabla, llamada reserva_auditada. Para eso debo generar lo siguiente
>
> 1. crear la tabla reserva y la tabla reserva_auditada
>
> 2. creas la funcion como esta
>
> CREATE OR REPLACE FUNCTION audita_reserva_trg()
>   RETURNS trigger AS
> $BODY$
> DECLARE
>     fecha timestamp;
>     equipo varchar;
> BEGIN
>     select into fecha current_timestamp(0);
>     -- INSERTA LA IP DEL EQUIPO DEL USUARIO
>      select into equipo inet_client_addr();
>     --select into usuario user;
>     IF TG_OP='INSERT' THEN
>         INSERT INTO reserva_auditada (rs_cod, pf_cod, pc_cod,
> us_firma,rs_fecha,rs_desde, rs_hasta,rs_nombre,rsa_fecha,
> rsa_equipo,rsa_audita)
>         VALUES (NEW.rs_cod,
> NEW.pf_cod,NEW.pc_cod,NEW.us_firma,NEW.rs_fecha,NEW.rs_desde,NEW.rs_hasta,
> NEW.rs_nombre,fecha, equipo,'INSERT');
>     END IF;
>     RETURN NULL;
> END;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE
>   COST 100;
> ALTER FUNCTION audita_reserva_trg() OWNER TO postgres;
>
> 2. luego en la tabla reservas creas el trigger que llame a la funcion
> recien creada
>
> CREATE TRIGGER audita_reserva_trg
>   AFTER INSERT
>   ON reserva
>   FOR EACH ROW
>   EXECUTE PROCEDURE audita_reserva_trg();
>
>  Quien es la que hace el llamado a la funcion antes creada
>
> Alguna duda, al respecto? espero que te quede claro saludos


Gracias a todos por su aporte, me quedo claro, bueno ahora a seguir,
cualquier duda pronto lo sabran je..

Suso amigo mandame la info por fa

Gracias.

Responder a