From: | Bendik Rognlien Johansen <bendik(dot)johansen(at)gmail(dot)com> |
---|---|
To: | pgsql-novice(at)postgresql(dot)org |
Subject: | Trigger unhappy |
Date: | 2005-05-24 08:48:14 |
Message-ID: | 1FFDA63B-1A67-488B-AFA8-8A17D0FD85A0@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
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 OR
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
From | Date | Subject | |
---|---|---|---|
Next Message | Bendik Rognlien Johansen | 2005-05-24 08:54:11 | Trigger unhappy (Correction) |
Previous Message | Jan B. | 2005-05-24 08:46:03 | Re: "NOT NULL" |