Я хочу создать триггер, как-то так:
CREATE TRIGGER foo AFTER UPDATE OR INSERT ON bar FOR EACH ROW EXECUTE PROCEDURE baz(NEW.id);
Часть с NEW.id не работает.Как отправить значения из измененной строки (например, id) в триггер-функцию.
Функция триггера (процедура) знает NEW и OLD автоматически.Нет необходимости передавать их в качестве параметров.Подробнее читайте в главе Процедуры триггера в руководстве:
NEW
OLD
Когда функция PL / pgSQL вызывается как триггер, несколько специальных переменных автоматически создаются на верхнем уровнеблок.Это: NEW Тип данных RECORD;переменная, содержащая новую строку базы данных для операций INSERT / UPDATE в триггерах уровня строки.Эта переменная равна NULL в триггерах уровня оператора и для операций DELETE.
Когда функция PL / pgSQL вызывается как триггер, несколько специальных переменных автоматически создаются на верхнем уровнеблок.Это:
Тип данных RECORD;переменная, содержащая новую строку базы данных для операций INSERT / UPDATE в триггерах уровня строки.Эта переменная равна NULL в триггерах уровня оператора и для операций DELETE.