暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第18天

原创 张辉 2021-12-19
577

今天学习触发器

创建原表和触发表:


创建insert触发器函数 tri_insert_func():


创建insert触发器:


验证:



创建update触发器函数 tri_update_func()


创建update触发器:


执行update触发:


创建delete触发函数:


创建delete触发器:


验证:


触发器改名,查看:


禁用触发器,禁用后看有没有生效:


禁用所有触发器:


删除触发器:


开始做作业:

1.创建源表和触发表,在源表上创建insert触发器,创建操作触发表的触发器函数

create table t1(id int, name varchar(20));

create table t2(id int, name varchar(20));


create or replace function my_insert() returns trigger as

$$

declare

begin

insert into t2 values(NEW.id, NEW.name);

return NEW;

end

$$ language plpgsql;


create trigger my_insert_trigger

before insert on t1

for each row

execute procedure my_insert() ;


  

2.在源表上执行insert操作,查看触发操作是否生效;禁用触发器后,再次查看触发操作是否生效

insert into t1 values(1 ,'zhang');

insert into t1 values(2,'hui');

select * from t1;

select * from t2;


alter table t1 disable trigger  my_insert_trigger;

insert into t1 values(1 ,'li');

insert into t2 values(2,'bai');

select * from t1;

select * from t2;

可见并没有引起触发器。



3.使用系统表PG_TRIGGER和\dS+查看触发器

select *from pg_trigger;

\dS+ t1



4.重命名触发器

alter trigger my_insert_trigger on t1 rename to my_insert_trigger2;

select * from pg_trigger;



5.删除触发器

drop trigger my_insert_trigger2 on t1;








「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论