PG/Gauss触发器
【摘要】 --创建审计表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)