数据库连接及环境检查
切换用户至omm用户(gaussdb的所有者)
su - omm
gsql连接数据库,并检查当前会话连接信息:
gsql -r \conninfo
查看当前函数
select * from PG_TRIGGER;

课后练习
1.创建源表和触发表,在源表上创建insert触发器,创建操作触发表的触发器函数
--源表
create table products_p
(product_id integer,
product_name char(30),
category char(20)
);
--触发表
create table pro_number
(product_num integer);
--pro_number表记录products_p表数据行数
CREATE OR REPLACE FUNCTION TR_INSERT_func() RETURNS TRIGGER AS
$$
DECLARE
BEGIN
truncate table pro_number;
INSERT INTO pro_number (select (select count(1) from products_p)+1);
RETURN NEW;
END
$$ LANGUAGE PLPGSQL;
--创建插入触发器
CREATE TRIGGER insert_trigger
BEFORE insert ON products_p
FOR EACH ROW
EXECUTE PROCEDURE TR_INSERT_func();
\dS products_p
select * from PG_TRIGGER;

2.在源表上执行insert操作,查看触发操作是否生效;禁用触发器后,再次查看触发操作是否生效
--源表插入数据
INSERT INTO products_p VALUES
(1601,'lamaze','toys'),
(1700,'wait interface','Books'),
(1502,'olympus camera','electrncs'),
(1666,'harry potter','toys');
--检查触发器是否生效
select count(1) from products_p;
select * from pro_number;
INSERT INTO products_p VALUES
(1601,'lamaze','toys');
select count(1) from products_p;
select * from pro_number;

3.使用系统表PG_TRIGGER和\dS+查看触发器
\dS products_p
select * from PG_TRIGGER;

4.重命名触发器
ALTER TRIGGER insert_trigger ON products_p RENAME TO insert_trigger_prownum;
\dS products_p

5.删除触发器
drop TRIGGER insert_trigger_prownum ON products_p;
\dS products_p
select * from PG_TRIGGER;

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




