создание роли или тригера для аудита

Прошу помощи с созданием роли или тригера для аудита выбранных столбцов в таблице.. вот что имеем : некая таблица из 70+ столбцов

имеем table_audit вот с такими столбцами :
table_name //имя таблицы где произошли изменения
column_name // имя столбца
date //дата изменения
oid //id записи
old_value // старое значение
new_value //новое значение
user //кто внес изменение

набрасываю все от руки - чтобы названия были понятны - в реальной таблице руки бы оторвать придумшику имен.

для поставленной задачи получилось вот такое правило

CREATE OR REPLACE RULE "test_1" AS ON UPDATE TO table_1 DO
	ALSO INSERT INTO table_audit (
		table_name,
		column_name,
		date,
                oid,
                old_value,
                new_value,
                user
        	)
VALUES
	(
    'Table_1',
    'column_2'
     now()::DATE,
     OLD.id,
     OLD."column_2",
     NEW."column_2",
     current_user
	);

все бы ничего - но как ограничить данную роль только на 1 столбце.. мне не нужно следить за всеми столбцами - а только за определенными - скажем 10 столбцов ..
пробовал в ON UPDATE TO table_1 добавить имя столбца - но был отправлен подальше.
заранее спасибо.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Единицей сущности в любой

Единицей сущности в любой таблице является запись, а не столбец, так что никак.
Можно в самом правиле или триггере проверить что изменились именно нужные столбцы в таблице, а если изменились какие-то другие - ничего не делать.

а как нить можно получить имя

а как нить можно получить имя столбца ? обнаружил что можно получить имя схемы.. имя таблицы TG_TABLE_NAME или это тоже не возможно ?

Так вы же знаете какие

Так вы же знаете какие столбцы в таблице, нет?

в таблице знаю - не знаю

в таблице знаю - не знаю какие изменены.
Ладно закрываем вопрос - я кажется пойду другим путем - первую часть собрал - завтра буду пробовать все это запустить.
Суть такая - на веб страничке javascript будет говорить какие поля изменены и на основе этого выстраивать запрос.

Спасибо за подсказки.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023