Trigger unhappy (Correction)

Поиск
Список
Период
Сортировка
От Bendik Rognlien Johansen
Тема Trigger unhappy (Correction)
Дата
Msg-id F5B83AE3-1247-416B-ADA0-D256A2A3EFFE@gmail.com
обсуждение исходный текст
Ответы Re: Trigger unhappy (Correction)  (Miguel que te importa <yourpadre@gmail.com>)
Список pgsql-novice
Forgot to remove "OR" here IF NEW.indexed != true

Hello,
I have the following trigger on the table "records":

CREATE OR REPLACE FUNCTION records_update_trigger() RETURNS TRIGGER AS '
   BEGIN
     NEW.updated = now();
     IF OLD.address1 != NEW.address1 OR OLD.postalcode1 !=
NEW.postalcode1
     THEN
       RAISE NOTICE ''Address was altered, position set to null'';
       NEW.position := NULL;
     END IF;


     IF NEW.indexed != true
     THEN
       NEW.indexed := false;
       RAISE NOTICE ''Index not set, unsetting indexed'';
     END IF;
     RETURN NEW;
   END;
' language plpgsql;

DROP TRIGGER update_trigger ON records;
CREATE TRIGGER update_trigger BEFORE UPDATE ON records FOR EACH ROW
EXECUTE PROCEDURE records_update_trigger();



The "indexed" column on the table is default false.
Every time i do an update, the variable NEW.indexed is true, even
when it is not set in the sql. The result is that indexed is never
set to false in the second if-clause of the function.

What is causing this?


Thanks






В списке pgsql-novice по дате отправления:

Предыдущее
От: Bendik Rognlien Johansen
Дата:
Сообщение: Trigger unhappy
Следующее
От: Andreas Kretschmer
Дата:
Сообщение: Re: [despammed] Trigger unhappy