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;

  • 相关阅读:
    MacOS安装mysql
    让终端命令走代理
    T265输出深度图
    windows分离系统文件和用户数据
    Python UnicodeDecodeError
    【转载】小米2进入recovery的方法
    【转载】如何更容易地打开小米手机后盖
    quote、cite、refer的区别
    python idle 清屏问题的解决
    System占用端口80
  • 原文地址:https://www.cnblogs.com/xiaofoyuan/p/5263816.html
Copyright © 2011-2022 走看看