触发器:在一条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: 数据库中已经存在的表。
例子:
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 表。
根据这个小例子,加上帮助文档的帮忙,大部分触发器和存储过程都可以实现。