Обсуждение: Trigger unhappy
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
am 24.05.2005, um 10:48:14 +0200 mailte Bendik Rognlien Johansen folgendes:
> IF NEW.indexed != true OR
^^
why?
> What is causing this?
Im not sure, but this 'OR' is IMHO not correct.
Regards, Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47212, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===
Yes, sorry, I forgot to remove that "OR". It is not the problem. On May 24, 2005, at 11:03 AM, Andreas Kretschmer wrote: > am 24.05.2005, um 10:48:14 +0200 mailte Bendik Rognlien Johansen > folgendes: > >> IF NEW.indexed != true OR >> > ^^ > why? > > >> What is causing this? >> > > Im not sure, but this 'OR' is IMHO not correct. > > > Regards, Andreas > -- > Andreas Kretschmer (Kontakt: siehe Header) > Heynitz: 035242/47212, D1: 0160/7141639 > GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net > === Schollglas Unternehmensgruppe === > > ---------------------------(end of > broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to > majordomo@postgresql.org >