openGauss/MogDB数据库触发器分两步拆解创建

2023年 9月 25日 18.7k 0

Oracle触发器参考例子

CREATE OR REPLACE TRIGGER ora_trigger AFTER UPDATE OR INSERT OR DELETE ON tab_x FOR each row
declare
...
begin
...
insert into tab_x ...;
end;
/

针对上面的例子,PostgreSQL里需要分两步来操作

1.先创建“触发器函数”

“触发器函数”是返回类型为trigger的函数,把上面的业务逻辑提取到下面的函数里面。

CREATE FUNCTION tigger_fun() RETURNS trigger AS $$
declare
...
begin
...
insert into tab_x ...;
end;
$$ language plpgsql;

2.创建触发器

下面procedure关键字后面指定上一步创建的触发器函数名。

create trigger tab_x_trigger
AFTER UPDATE OR INSERT OR DELETE on tab_x
for each row execute procedure tigger_fun();

3.触发器的查看

方式一:使用gsql工具连接后,通过表的定义上可以查看

\d+ tab_x

方式二:通过sql语句查询pg_trigger系统表

select * from pg_trigger where tgname='tab_x';

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论