加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL 触发器 (trigger

发布时间:2020-12-13 17:55:13 所属栏目:百科 来源:网络整理
导读:触发器:在一条INSERT,UPDATE,DELETE语句执行前,后的函数。(自己定义)。 PostgreSQL语法: CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE funcname ( arguments ) name

触发器:在一条INSERT,UPDATE,DELETE语句执行前,后的函数。(自己定义)。

PostgreSQL语法:

CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE funcname ( arguments )

name:触发器名字。(自己定义)

event: INSERT,DELETE

table: 数据库中已经存在的表。

funcname: 存储过程(函数)的名称。

例子:

CREATE OR REPLACE function del_xuesheng() RETURNS TRIGGER AS $DELETE$

BEGIN

DELETE FROM XUE_SHENG WHERE B_ID = OLD.id;

RETURN OLD;

END;

$DELETE$

LANGUAGE PLPGSQL;

ALTER FUNCTION del_xuesheng() OWNER TO postgres;

上述代码利用存储过程的实现触发器。

在ban_ji 表上,对于每 次DELETE 建立触发器,执行上述存储过程。

CREATE TRIGGER del_ban_id AFTER DELETE ON ban_ji FOR EACH ROW EXECUTE PROCEDURE del_xuesheng();

代码要正确执行必备条件:

1. 数据库中有 ban_ji 表 和XUE_SHENG 表。

根据这个小例子,加上帮助文档的帮忙,大部分触发器和存储过程都可以实现。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读