Dynamic Log tigger (plpgsql)

Поиск
Список
Период
Сортировка
От Noah Heusser
Тема Dynamic Log tigger (plpgsql)
Дата
Msg-id 4673C901.2000806@heussers.ch
обсуждение исходный текст
Ответы Re: Dynamic Log tigger (plpgsql)  ("Sibte Abbas" <sibtay@gmail.com>)
Re: Dynamic Log tigger (plpgsql)  ("Sergey Konoplev" <gray.ru@gmail.com>)
Re: Dynamic Log tigger (plpgsql)  (Jim Nasby <decibel@decibel.org>)
Список pgsql-general
Hi

I want to implement a trigger-function witch can fill the following table.
Each data manipulation (INSERT, UPDATE or DELETE) gets logged.
The function should work as trigger on diffrent tables.

CREATE TABLE logtable (
  operation        CHAR(6) CHECK (change_type IN ('DELETE', 'INSERT', 'UPDATE')),
  tablename        VARCHAR,
  rowid            INTEGER,  -
  touched_columns  VARCHAR[]
);

My Problem is in the last Column (touched_columns).
If it was an UPDATE Operation, I just need to know witch columns changed. (I am not iterrestet in the old or new value)
=> IF OLD.columnName != NEW.columnName, it has changed.



My Question:
How can I do "OLD.columnName != NEW.columnName" if I don't know what the
columnNames are at Compile Time?
I have the columnName in a variable.


Thx for help.
Noah

В списке pgsql-general по дате отправления:

Предыдущее
От: novnov
Дата:
Сообщение: Trigger function that works with both updates and deletes?
Следующее
От: Sergei Shelukhin
Дата:
Сообщение: VACUUM ANALYZE extremely slow