【问题标题】:How to create TRIGGER who will be save the schemat change如何创建将保存架构更改的触发器
【发布时间】:2014-12-05 22:37:46
【问题描述】:

我是论坛的新手。我的英语很抱歉。

我的问题是:如何创建一个触发器来保存数据库上的任何更改。

例如(添加列、创建表、删除数据库、替换函数)。

我想将此信息保存在表格中。我想在 DATABASE 中保存有关所有表(行)和函数的信息;

【问题讨论】:

标签: sql postgresql triggers audit


【解决方案1】:

我的回答是:

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();

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多