@P747

PostgreSQL, почему не подставляется переменная «TG_TABLE_NAME»?

Добрый день!

Почему возникает ошибка и не подставляется данные из переменной?

5f97db56c073e358125368.png

Код триггера и функции:
CREATE OR REPLACE FUNCTION update_dt_column() RETURNS TRIGGER AS $$
BEGIN
    UPDATE TG_TABLE_NAME SET dt_update = NOW() WHERE id = NEW.id;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER t_phones_dt_update
AFTER UPDATE ON phones FOR EACH ROW EXECUTE PROCEDURE update_dt_column();
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Потому что с чего вы решили, что в pl/pgsql есть синтаксис update переменная set? Нет его. На этом месте всегда имя таблицы.

Впрочем, триггер вовсе абсурден и ничего кроме бесконечной рекурсии не породит.
Вам нужен before insert триггер с
NEW.dt_update = NOW();
return NEW;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы