PG/Gauss触发器

举报
张谱继 发表于 2024/07/13 17:20:20 2024/07/13
【摘要】 --创建审计表CREATE TABLE zzz_audit(id serial,tstamp timestamp DEFAULT now(), -- 操作时间operation text, -- 操作类型,包括:DELETE、UPDATE、INSERTwho text DEFAULT current_user, -- 操作者client_ip text DEFAULT inet_client...
--创建审计表
CREATE TABLE zzz_audit(
id serial,
tstamp timestamp DEFAULT now(), -- 操作时间
operation text, -- 操作类型,包括:DELETE、UPDATE、INSERT
who text DEFAULT current_user, -- 操作者
client_ip text DEFAULT inet_client_addr(), -- 操作客户端IP地址
client_port int DEFAULT inet_client_port(), -- 操作客户端端口
before_row json,
after_row json 
);

CREATE OR REPLACE FUNCTION "bd"."zzz_audit"()
  RETURNS "pg_catalog"."trigger" AS $BODY$

	begin

        IF (TG_OP = 'UPDATE' ) THEN
            INSERT INTO zzz_audit(operation,before_row,after_row)VALUES(TG_OP,row_to_json(old),row_to_json(new));
        END IF;
        RETURN NULL;
    END;
$BODY$
  LANGUAGE plpgsql ;

	create TRIGGER zzz_audit  
AFTER   UPDATE   ON xxx_table
FOR EACH ROW EXECUTE PROCEDURE zzz_audit();
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。