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 -- Cesar Erices Vergara Ingeniero en Gestión Informática Analista de Sistema Santiago - Chile