Я пытаюсь реализовать триггер BEFORE
, который обновляет поле до текущей даты, если обновляется другое поле.Несмотря на то, что обновленное значение присваивается NEW.zuletzt
, всякий раз, когда я вызываю Select * from hoert
, я все равно вижу старшее значение zuletzt
.Вот триггерная функция:
CREATE OR REPLACE FUNCTION changedAnzhoert() RETURNS TRIGGER AS $$
DECLARE
currDate DATE:=CURRENT_DATE;
BEGIN
IF OLD.anzahl<NEW.anzahl THEN
NEW.zuletzt:=currDate;
raise notice 'Neues Datum: %', NEW.zuletzt;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
И триггер:
CREATE TRIGGER trhoertChange BEFORE UPDATE ON hoert
FOR EACH ROW EXECUTE PROCEDURE changedAnzhoert();
Когда я запускаю:
UPDATE hoert SET anzahl=anzahl+1 WHERE id=1;
Я вижу:
ВНИМАНИЕ: Neues Datum: 2019-01-03
ОБНОВЛЕНИЕ 1