Jeśli chcesz ustawić „date1” w wyzwalaczu aktualizacji, powinno wyglądać tak:
CREATE OR REPLACE FUNCTION insert_date1_trg_func() RETURNS trigger AS $BODY$
BEGIN
NEW.date1 = date_trunc('day', NEW.timestamp1)::date;
RETURN NEW;
END; $BODY$ LANGUAGE plpgsql STABLE;
Wyzwalacz:
CREATE TRIGGER insert_date1_trg_func()
BEFORE INSERT OR UPDATE ON schema.table
FOR EACH ROW EXECUTE PROCEDURE insert_date1_trg_func();
Pamiętaj, że wyzwalacz powinien zadziałać PRZED wstawienie lub aktualizacja lub zmiany nie zostaną zachowane w bazie danych.