Hola de nuevo a todos, me gustaría me dieran vuestro consejo sobre lo siguiente:
Tengo este trigger(uno por tabla) y su function correspondiente(una por tabla), a parte de
guardar los datos que se ven, es decir la tabla modificada, más el usuario, ip del mismo, fecha,
hora y tipo de operación, debería guardar algún dato más para que el tema de auditorías fuera
mas exacto o fiable?
CREATE TRIGGER audit_aux
BEFORE INSERT OR UPDATE OR DELETE
ON aux
FOR EACH ROW
EXECUTE PROCEDURE audit_aux();
CREATE OR REPLACE FUNCTION audit_aux()
RETURNS trigger AS
$BODY$
begin
IF (TG_OP = 'DELETE') THEN
INSERT INTO audit.aux SELECT
OLD.*,user,inet_client_addr()::varchar,now(),'B';
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO audit.aux SELECT
NEW.*,user,inet_client_addr()::varchar,now(),'U';
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO audit.aux SELECT
NEW.*,user,inet_client_addr()::varchar,now(),'I';
RETURN NEW;
END IF;
RETURN NULL;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION audit_aux() OWNER TO postgres;
Gracias
Un saludo
Suso
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo