Я пытаюсь сделать то, что на первый взгляд кажется простой задачей.У меня есть таблица с полями expires_at
(отметка времени) ttl
(целое число) и name
(текст)
ttl
предоставляется как 86400. Я хочу установить поле expires_at
чтобы быть текущей отметкой времени + ttl.
, это мой триггер
CREATE FUNCTION public.set_expires() RETURNS trigger
LANGUAGE plpgsql
AS $_$
BEGIN
NEW.expires_at := CURRENT_TIMESTAMP + (NEW.ttl || ' seconds')::INTERVAL;
RETURN NEW;
END;
$_$;
, однако, когда он запускается, я получаю текущее время в поле expires_at
.
если я изменю триггер на
NEW.expires_at := CURRENT_TIMESTAMP + (86400 || ' seconds')::INTERVAL;
, тогда expires_at
установлен правильно.
Это будет означать, что NEW.ttl
не установлен, но если я добавлю
NEW.name:=NEW.ttl;
к триггеру, name
будет установлен на 86400. Так что я несколько смущен тем, что яя делаю не так и буду признателен за помощь;)