简体   繁体   English

如何知道对postgres SQL表执行的所有操作?

[英]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.

相关问题 Postgres SQL 如何在 SQL 数据库上透视表 - Postgres SQL How to Pivot table on SQL database SQL 服务器触发器如何记录所有操作 - SQL Server Trigger how to log all actions 如何知道 postgres 表格单元格中是否存在某个时间戳 - How to know if a certain timestamp exists in a postgres table cell R 或 postgres SQL 代码:如何识别表中的所有连接值以识别唯一网络 - R or postgres SQL code : How to identify all connected values in a table to identify unique networks (Postgres)SQL:如何提供所有缺失的对? - (Postgres) SQL: How to supply all missing pairs? 正则表达式:Postgres SQL查询返回表中所有可用的记录 - Regular expression: Postgres SQL query is returning all records available in the table 联合Postgres中的GeomUnion等SQL Server表中的所有几何体 - Union all geometry in a SQL Server table like GeomUnion in Postgres Postgres SQL:新表具有日期范围内所有日期的唯一行 - Postgres SQL: New table with unique rows for all dates in date range Postgres SQL删除表会删除所有相关视图吗? - Postgres SQL dropping table drops all dependent views? SQL 查询用于将行的所有列中的 null 值替换为从具有匹配 ID 的另一个表的行中获取的值 - SQL query for replacing null values in all columns of a row with values taken from rows of another table with matching ID
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM