Re: Trigger unhappy (Correction)
От | Miguel que te importa |
---|---|
Тема | Re: Trigger unhappy (Correction) |
Дата | |
Msg-id | b623c7e40505240908798f7959@mail.gmail.com обсуждение исходный текст |
Ответ на | Trigger unhappy (Correction) (Bendik Rognlien Johansen <bendik.johansen@gmail.com>) |
Список | pgsql-novice |
you have NEW.updated = now(); and NEW.indexed := false; see "=" != ":=". maybe is the problem 2005/5/24, Bendik Rognlien Johansen <bendik.johansen@gmail.com>: > 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 > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq >
В списке pgsql-novice по дате отправления: