[英]How to know all the actions taken on postgres SQL table?
I am looking for a way to know all the events occurred on a specific table without enabling postgres logs. 我正在寻找一种无需启用postgres日志即可了解特定表上发生的所有事件的方法。
Just want to know weather the sequence of addition/deletion/ Modification. 只想知道天气的添加/删除/修改的顺序。
Thanks 谢谢
对于postgres中的审计跟踪,您必须编写一个函数并在触发器中调用它,请查看wiki.postgresql.org/wiki/Audit_trigger ,您将必须编写一个函数,说明是否进行更新,删除或插入。如果发生在表上,它将触发一个操作,该操作将更新审核表,以捕获所需的信息,例如ip地址,查询,旧数据,新数据,发生的操作的时间戳等。
You can create triggers (see postgres docs ) to observe all changes, eg: 您可以创建触发器(请参阅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();
or do this with just one function: 或仅使用一个功能来执行此操作:
CREATE TRIGGER universal_trigger AFTER INSERT OR UPDATE OR DELETE ON my_table
EXECUTE PROCEDURE universal_function();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.