Trigger unhappy (Correction)
От | Bendik Rognlien Johansen |
---|---|
Тема | Trigger unhappy (Correction) |
Дата | |
Msg-id | F5B83AE3-1247-416B-ADA0-D256A2A3EFFE@gmail.com обсуждение исходный текст |
Ответы |
Re: Trigger unhappy (Correction)
|
Список | 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 по дате отправления: