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

openGauss每日一练第18天,触发器

原创 虫爷 2021-12-19
560

openGauss每日一练第18天课后作业


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

create table lzm_tri_src(id int,first_name char(20),last_name char(20));

create table lzm_tri_des(id int,first_name char(20),last_name char(20));

CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS
$$
DECLARE
BEGIN
INSERT INTO lzm_tri_des VALUES(NEW.id, NEW.first_name, NEW.last_name);
RETURN NEW;
END
$$ LANGUAGE PLPGSQL;

create 
CREATE TABLE 
create 
CREATE TABLE 
CREATE 
cmn-# $$ 
table Izm tri src(id int, first 
table Izm tri des(id int, first 
OR REPLACE FUNCTION tri insert 
name char(2ø),1ast_name char(2Ø)); 
name char(2ø),1ast_name char(2Ø)); 
func() RETURNS TRIGGER AS 
DECLARE 
BEGIN 
INSERT INTO Izm tri_des VALUES(NEW.id, 
RETURN NEW; 
cmn$# END 
$$ LANGUAGE PLPGSQL; 
CREATE FUNCTION 
NEW. first name, 
NEW. last name);

CREATE TRIGGER lzm_insert_trigger
BEFORE INSERT ON lzm_tri_src
FOR EACH ROW
EXECUTE PROCEDURE tri_insert_func();

CREATE TRIGGER Izm insert trigger 
BEFORE INSERT ON Izm tri src 
FOR EACH 
EXECUTE PROCEDURE tri 
CREATE TRIGGER

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

insert into lzm_tri_src values (1,'Harry','Potter');

select * from lzm_tri_des;

insert into Izm tri src values (1, 'Harry' , 'Potter' ) ; 
INSERT Ø 1 
select * fran Izm tri des; 
id I 
first name 
last name 
I Potter

--禁用触发器后,再往lzm_tri_src插入数据

alter table lzm_tri_src disable trigger lzm_insert_trigger;

insert into lzm_tri_src values (2,'Wendy','Baker');

select * from lzm_tri_des;

alter table Izm tri src disable trigger Izm insert trigger; 
ALTER TABLE 
insert into Izm tri src values (2, 'Wendy' 
INSERT Ø 1 
select * fran Izm tri des; 
id I 
first name 
last name 
I Potter 
select * fran Izm tri src; 
id I 
first name 
2 | Wendy 
(2 rcms) 
last name 
I Potter

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

select * from pg_trigger;

\dS+  lzm_tri_src;

4.重命名触发器

alter trigger lzm_insert_trigger on lzm_tri_src rename to lzm_insert_tri_renamed;

5.删除触发器

drop trigger lzm_insert_tri_renamed on lzm_tri_src;

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

评论