zoukankan      html  css  js  c++  java
  • postgresql 触发器

    一、创建事件触发器

    1、ddl_command_start - 一个DDL开始执行前被触发;

    2、ddl_command_end - 一个DLL 执行完成后被触发;

    3、sql_drop -- 删除一个数据库对象前被触发;

    create or replace function abort_any_command()

    returns event_trigger

    language plpgsql

    as $$

    begin

    raise exception 'command % is disabled',tg_tag;

    end;

    $$;

    create event trigger abort_ddl on DDL_command_start execute procedure abort_any_command();

    二、语句级触发器

    create or replace function log_student_trigger()

    returns trigger as $$

    begin

    insert into log_student values(now(),user,tg_op);

    return null;

    end;

    $$

    language plpgsql;

    create trigger log_student_trigger

    after insert or delete or update on student

    for statement execute procedure log_student_trigger;

    --此触发器表示,如果对student表进行增、删、改之后将操作日志插入log_student_student表,如果将after替换成before则表示在操作进行之前出发数据插入操作。

    注意:语句级的触发器应该总是返回null,并且必须显示地在触发器函数中写上“return null”,如果没写,将会报错。

    三、修改事件触发器

    1、禁用事件触发器 alter event trigger name disable;

    2、启用事件触发器 alter event trigger name enable;

    3、指定事件触发器所属 alter event trigger name owner to new owner;

    4、重命名触发器 alter event trigger name rename to new_name;

  • 相关阅读:
    学习 TList 类的实现[1]
    Dll 使用 PChar 参数的小例子
    学习使用资源文件[11]
    【转载】OGRE 内存管理
    【转载】Ogre的内存分配策略
    【转载】.NET面试题系列[0]
    【转载】深入探讨透视投影坐标变换
    【转载】四元数-Quaterion
    【转载】齐次坐标
    【转载】深入研究Windows内部原理绝对经典的资料
  • 原文地址:https://www.cnblogs.com/xiaofoyuan/p/5263816.html
Copyright © 2011-2022 走看看