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;

  • 相关阅读:
    SVN相关
    Sublime text 2/3 中 Package Control 的安装与使用方法
    JavaScript 限制input输入类型(多种方法实现)
    yahoo的30条优化规则
    浏览器页面加载解析渲染机制(一)
    Cookies 和 Session的区别
    Post Get 区别
    Vue 学习之 关键字、关键单词
    移动H5前端性能优化指南
    『Python基础练习题』day01
  • 原文地址:https://www.cnblogs.com/xiaofoyuan/p/5263816.html
Copyright © 2011-2022 走看看