Как создать TRIGGER, который будет сохранять изменения схемы

Я новичок на форуме. Я извиняюсь от моего английского.

Мой вопрос: как создать TRIGGER, который будет сохранять любые изменения в БД.

Например (добавить столбец, создать таблицу, удалить базу данных, заменить функцию).

Я хочу сохранить эту информацию в таблице. Я хочу сохранить информацию обо всех таблицах (строках) и функции в DATABASE;

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();
Другие вопросы по тегам