Столбец «now» не существует postgres django

У меня есть приложение на django, которое хранит колонку даты в модели/таблице в postgres first_subscribed = models.DateField(auto_now=True), и оно работает нормально.

Но если я включаю триггер для копирования данных из таблицы/модели в другую таблицу. Я получаю : psycopg2.errors.UndefinedColumn: column "now" does not exist .

Журнал с сервера:

Как будто триггер захватывает новые значения как now::date и это создает ошибку на postgres. Но если я отключу триггер, он работает нормально.

Пожалуйста, может ли кто-нибудь помочь мне понять и исправить это?

В Postgres "сейчас" на самом деле представлено в виде функции now(). Чтобы получить текущую временную метку, вам нужно сделать что-то вроде v_vigencia_ini := now()::date

Если вы обновите определение триггера, ошибка должна исчезнуть.

Кроме того, если вам нужна текущая дата, вы можете сделать это без необходимости вызывать now(), и, следовательно, нет необходимости выполнять приведение с помощью ::date

edb_admin=> select CURRENT_DATE;
 current_date 
--------------
 2025-03-13
(1 row)

Таким образом, вы также можете обновить определение триггера с помощью v_vigencia_ini := CURRENT_DATE, а также

Судя по названию поля, я думал, вы хотели использовать auto_now_add, а не auto_now, чтобы теперь дата принималась только при создании строки (а не при обновлении строки). Однако, хотя это может решить вашу проблему, я не могу понять, почему ваш триггер не работал нормально.. пожалуйста, не могли бы вы поделиться своим описанием функции tg_fun_name.

Вернуться на верх