当前位置:   article > 正文

9.29. Event Trigger Functions_.pavcwetriggerfunction

.pavcwetriggerfunction

9.29 事件触发器函数

PostgreSQL提供用以从事件触发器中获取信息的函数。

 

有关事件触发器的更多信息,请参见第39章

9.29.1. Capturing Changes at Command End

9.29.1 在命令结束时获取变化

pg_event_trigger_ddl_commands () → setof record

pg_event_trigger_ddl_commands返回由用户调用附加了ddl_command_end事件触发器的函数时执行的DDL命令列表。它返回如下列:

9.29.2. Processing Objects Dropped by a DDL Command

9.29.2 处理使用DDL命令删掉的对象

pg_event_trigger_dropped_objects () → setof record

pg_event_trigger_dropped_objects返回调用了sql_drop事件删除的数据库对象列表。其返回如下列:

示例:

  1. CREATE FUNCTION test_event_trigger_for_drops()
  2. RETURNS event_trigger LANGUAGE plpgsql AS $$
  3. DECLARE
  4. obj record;
  5. BEGIN
  6. FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects()
  7. LOOP
  8. RAISE NOTICE '% dropped object: % %.% %',
  9. tg_tag,
  10. obj.object_type,
  11. obj.schema_name,
  12. obj.object_name,
  13. obj.object_identity;
  14. END LOOP;
  15. END
  16. $$;
  17. CREATE EVENT TRIGGER test_event_trigger_for_drops
  18. ON sql_drop
  19. EXECUTE FUNCTION test_event_trigger_for_drops();

9.29.3. Handling a Table Rewrite Event

9.29.3 表重写事件处理

表9.98提供的函数,用以返回调用table_rewrite事件的相关信息。

示例:

  1. CREATE FUNCTION test_event_trigger_table_rewrite_oid()
  2. RETURNS event_trigger
  3. LANGUAGE plpgsql AS
  4. $$
  5. BEGIN
  6. RAISE NOTICE 'rewriting table % for reason %',
  7. pg_event_trigger_table_rewrite_oid()::regclass,
  8. pg_event_trigger_table_rewrite_reason();
  9. END;
  10. $$;
  11. CREATE EVENT TRIGGER test_table_rewrite_oid
  12. ON table_rewrite
  13. EXECUTE FUNCTION test_event_trigger_table_rewrite_oid();

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/773736
推荐阅读
相关标签
  

闽ICP备14008679号