У меня есть несколько таблиц в базе данных PostgreSQL 9.6, изменения которых я хочу отслеживать и обрабатывать во внешнем приложении.
Обработка только изменений данных не была сложной, но теперь я хочу отслеживать изменения структуры моей базы данных для хранения. Вот что у меня есть:
CREATE OR REPLACE FUNCTION log_structureChanged()
RETURNS event_trigger AS $$
BEGIN
UPDATE dbchanged SET changed=2 WHERE table_name = TG_ARGV[0];
RETURN NEW;
END;
$$ LANGUAGE PLPGSQL;
CREATE EVENT TRIGGER testData_struc
ON ddl_command_end
WHEN TAG IN ( 'CREATE TABLE', 'ALTER TABLE', 'DROP TABLE' )
EXECUTE PROCEDURE log_structureChanged();
Когда вызывается EXECUTE PROCEDURE
, я хочу проанализировать таблицу, в которую были внесены изменения. Официальная документация PostgreSQL не очень помогла мне - я также, возможно, не полностью понял некоторые части.
Так как мне разобрать таблицу на которой стрелял EVENT TRIGGER
? Хранится ли он внутри переменной?