您的位置:首页 > 数据库

过滤关键字,在表TABLE_A 插入前,建立触发器,使用游标过滤关键字。postgresql

2014-10-31 12:44 435 查看
1.创建函数-gl_fun()过滤-使用游标

CREATE OR REPLACE FUNCTION gl_fun(refcursor, msgcontent character varying)  RETURNS character varying AS$BODY$
DECLARE Msg varchar(50); --定义变量begin --定义游标 打开游标 ;open $1 FOR SELECT 字段A FROM 表名1 ; --查出需要的集合放到游标中 --打开游标 FETCH NEXT FROM $1 INTO Msg; while found loop msgcontent = replace(msgcontent,Msg,'');---将内容msgcontent 中,包含有关键字MSG 的替换为空 FETCH NEXT FROM $1 INTO Msg; --读取下一行数据 END loop; close $1;--关闭游标return msgcontent; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION gl_fun(refcursor, character varying) OWNER TO postgres;

2.-创建触发器函数,并给表创建触发器

CREATE OR REPLACE FUNCTION A_insert_trigger_fun()  RETURNS trigger AS$BODY$  BEGIN      NEW.msgcontent := gl_fun('abc',NEW.msgcontent);  ---调用刚才的过滤的方法        RETURN NEW; ---返回更新后的数据。END;  $BODY$  LANGUAGE plpgsql VOLATILE  COST 100;ALTER FUNCTION A_insert_trigger_fun()  OWNER TO postgres;
---给表TABLE_A 关联上触发器CREATE TRIGGER A_before_insert_trigger BEFORE INSERT ON TABLE_A FOR EACH ROW EXECUTE PROCEDURE A_insert_trigger_fun();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息