我正在寻找一种方法来了解特定表上发生的所有事件,而不启用postgres日志。
只想知道天气添加/删除/修改的顺序。
由于
答案 0 :(得分:1)
对于postgres中的审计跟踪,您必须编写一个函数并在触发器中调用它,请查看 wiki.postgresql.org/wiki/Audit_trigger ,您将不得不编写一个函数声明如果在表上发生更新或删除或插入,它将触发更新审计表的操作,该审计表捕获所需信息,例如ip地址,查询,旧数据,新数据,已发生操作的时间戳等。< / p>
答案 1 :(得分:0)
您可以创建触发器(请参阅postgres docs)以观察所有更改,例如:
CREATE TRIGGER insert_trigger AFTER INSERT ON my_table
EXECUTE PROCEDURE insert_function();
CREATE TRIGGER update_trigger AFTER UPDATE ON my_table
EXECUTE PROCEDURE update_function();
CREATE TRIGGER delete_trigger AFTER DELETE ON my_table
EXECUTE PROCEDURE delete_function();
或仅使用一个函数执行此操作:
CREATE TRIGGER universal_trigger AFTER INSERT OR UPDATE OR DELETE ON my_table
EXECUTE PROCEDURE universal_function();