Ниже я реализовал простую функцию триггера уведомления postgres, которая публикует запись OLD
и NEW
как пользовательский объект json после транзакции insert
или update
.
CREATE OR REPLACE FUNCTION test()
RETURNS trigger AS
$BODY$
BEGIN
PERFORM pg_notify('test_chanel', json_build_object('new',row_to_json(NEW),'old',row_to_json(OLD))::text );
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
должен испускать
{
"old":{...},
"new":{...}
}
Проблема в том, что OLD явно не существует для insert
. Как я могу сделать это по желанию?