赞
踩
目前的事件触发器有四个:
ddl_command_start, ddl_command_end, table_rewrite 和sql_drop
可以捕捉相应事件信息的有ddl_command_end, table_rewrite 和sql_drop。
ddl_command_end事件:
可以使用pg_event_trigger_ddl_commands()函数返回ddl_command_end事件的信息,该事件捕捉CREATE, ALTER, DROP, SECURITY LABEL, COMMENT, GRANT 或者REVOKE操作之后的信息。
pg_event_trigger_ddl_commands()函数获取的信息如下:
sql_drop事件:
sql_drop事件发生在ddl_command_end事件触发删除数据库对象的操作之前,要列出删除的对象,则使用该事件触发器。
pg_event_trigger_dropped_objects()函数可以捕捉相关信息
table_rewrite事件:
该事件发生在一个表重写之前,如执行ALTER TABLE 和ALTER TYPE某些操作命令。而CLUSTER和vacuum,则不会触发该事件。
通过以下函数进行捕捉:
时间触发器支持的命令列表:
https://www.postgresql.org/docs/12/event-trigger-matrix.html
具体实例:
https://github.com/digoal/blog/blob/master/201709/20170925_02.md
https://github.com/digoal/blog/blob/master/201412/20141211_01.md
参考:
https://www.postgresql.org/docs/12/functions-event-triggers.html
https://www.postgresql.org/docs/12/event-trigger-definition.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。