一、创建事件触发器

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;

postgresql 触发器的更多相关文章

  1. PostgreSQL触发器的使用

    原文: https://www.yiibai.com/postgresql/postgresql-trigger.html -------------------------------------- ...

  2. 关于postgresql触发器的总结(lab作业系列)

    上题: In this tutorial you will create a stored procedure and triggers to check a complex constraint. ...

  3. postgresql 触发器 更新操作

    1 前言 功能需求:当一张表格某个字段变化,另一张表某个字段写入该值 2 代码 CREATE OR REPLACE FUNCTION "public"."synStatu ...

  4. PGSQL基础语句汇总

    一.pgsql里面的数据类型不再介绍:https://www.runoob.com/postgresql/postgresql-data-type.html 二.常用基本语句 2.1.CREATE D ...

  5. PostgreSQL 创建触发器 Trigger

    触发器的知识点: PostgreSQL在以下情况下执行/调用触发器:在尝试操作之前(在检查约束并尝试INSERT,UPDATE或DELETE之前).或者在操作完成后(在检查约束并且INSERT,UPD ...

  6. PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的

    PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报  分类: MYSQL数据库(5)  PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...

  7. 在pgsql库用触发器自动触发PostgreSQL的存储过程,实现插入。

    需求:在对表A 执行 insert操作时,筛选符合条件的数据 insert到表B中,编写为存储过程(postgreSQL数据库) [筛选条件]:1. dd !="A" 或是 dd为 ...

  8. postgresql 的触发器

    今天编写了一个触发器 功能: 有两个表,当一个表的字段有所改动的时候,另一个表跟着改动 CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS T ...

  9. postgresql 表触发器

    1.先建一个函数,用来执行触发器启动后要执行的脚本 CREATE OR REPLACE FUNCTION "public"."trigger_day_aqi"( ...

随机推荐

  1. Android 获取存储空间

    package com.example.getMem; import java.io.File; import android.os.Build;import android.os.Bundle;im ...

  2. Spring的"Hello, world",还有"拿来主义"

    这里有两个类: com.practice包下的SpringTest.java和PersonService.java. Spring可以管理任意的POJO(这是啥?),并不要求Java类是一个标准的Ja ...

  3. React生命周期浅析

    引言 关于React的生命周期API,官网,有着详细说明.但在实际写代码的过程中,这些说明不能解决所有的疑惑. 所以我列举了一些编码中常见用例,供大家参考. 示例代码如下 /* use case 1. ...

  4. css position 绝对定位和相对定位

    position:absolute这个是绝对定位:是相对于浏览器的定位.比如:position:absolute:left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览 ...

  5. 使用ultramon调整任务栏高度

    取消锁定,调整任务栏的高度为一行图标的高度,然后再锁定即可.为啥程序没有默认设置?

  6. js 返回上一页

    --------2016-6-14 16:37:30-- source:[1]js返回上一页

  7. Python学习笔记15—mysql的操作

    安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...

  8. linux 命令集

          cat chattr chgrp c hmod chown cksum cmp diff diffstat file find git gitview indent cut ln less ...

  9. 树状数组求逆序对:POJ 2299、3067

    前几天开始看树状数组了,然后开始找题来刷. 首先是 POJ 2299 Ultra-QuickSort: http://poj.org/problem?id=2299 这题是指给你一个无序序列,只能交换 ...

  10. jQuery动态加载css文件实现方法

    $("<link>").attr({ rel: "stylesheet",type: "text/css",href: &quo ...