我在论坛上是新手。我的英语很抱歉。
我的问题是:如何创建一个可以保存数据库更改的TRIGGER。
例如(添加列,创建表,删除数据库,替换函数)。
我想将此信息保存在表格中。我想在DATABASE中保存有关所有表(行)和函数的信息;
答案 0 :(得分:0)
CREATE OR REPLACE FUNCTION audyt_abort_any_command()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO audit_query (user_change, date_change, tg_tag, query)
VALUES ( user, now(), tg_tag, current_query());
END;
$$;
CREATE TABLE audit_query (
id serial,
user_change varchar(40) NOT NULL,
date_change timestamp,
tg_tag varchar(40) NOT NULL,
query text NOT NULL,
PRIMARY KEY (id)
);
CREATE EVENT TRIGGER save_audit_ddl ON ddl_command_start
EXECUTE PROCEDURE audyt_abort_any_command();