Thread: Update Triggers & NULLs

Update Triggers & NULLs

From
"Gregory Wood"
Date:
I have a plpgsql update trigger on one of my tables. The intention of the
trigger is to check to see if a particular field is updated, and if so
INSERT a record into another table. The IF statement looks something like
this:

IF new.MyField <> old.MyField THEN

This works great when MyField has an actual value and is being changed to a
new value. The problem is the <> expression is false if new.MyField or
old.MyField are NULL.

Is there a way to do this without having to write three different boolean
expressions?

Greg


Re: Update Triggers & NULLs

From
Doug McNaught
Date:
"Gregory Wood" <gregw@com-stock.com> writes:

> I have a plpgsql update trigger on one of my tables. The intention of the
> trigger is to check to see if a particular field is updated, and if so
> INSERT a record into another table. The IF statement looks something like
> this:
>
> IF new.MyField <> old.MyField THEN
>
> This works great when MyField has an actual value and is being changed to a
> new value. The problem is the <> expression is false if new.MyField or
> old.MyField are NULL.
>
> Is there a way to do this without having to write three different boolean
> expressions?

No, you need to check for NULL explicitly using ISNULL.  Is there some
problem with using three expressions?

-Doug
--
The rain man gave me two cures; he said jump right in,
The first was Texas medicine--the second was just railroad gin,
And like a fool I mixed them, and it strangled up my mind,
Now people just get uglier, and I got no sense of time...          --Dylan