melkij=> begin;
BEGIN
melkij=*> create table phones ( id serial, dt_update timestamptz);
CREATE TABLE
melkij=*> CREATE OR REPLACE FUNCTION update_dt_column() RETURNS TRIGGER AS $$
melkij$*> BEGIN
melkij$*> NEW.dt_update = NOW();
melkij$*> return NEW;
melkij$*> END;
melkij$*> $$ LANGUAGE plpgsql;
CREATE FUNCTION
melkij=*> CREATE TRIGGER t_phones_dt_update
melkij-*> BEFORE INSERT ON phones FOR EACH ROW EXECUTE PROCEDURE update_dt_column();
CREATE TRIGGER
melkij=*> insert into phones (id) values (default);
INSERT 0 1
melkij=*> table phones;
id | dt_update
----+-------------------------------
1 | 2020-10-27 13:16:07.956215+03
Не совсем пойму о чем вы, в теле функции же обычный sql. Или как правильно?
Почему before insert? Мне по сути нужно после обновления записи