Subject | Re: [firebird-support] problem with before update trigger |
---|---|
Author | Helen Borrie |
Post date | 2009-12-10T00:24:38Z |
At 09:27 AM 10/12/2009, you wrote:
Next, don't do unconditional operations in triggers unless you INTEND for them to be unconditional.
Replace this line with:
if (
(old.testupdated is null and new.testupdated is not null)
or
(new.testupdated = old.testupdated)
or
(new.testupdated is null and old.testupdated is not null)
) then
new.testupdated = 'S';
(or whatever logic you intend to achieve with this trigger...)
./heLen
>hi ,First, never refer to the "self" table. When you refer to fields in the self table, refer to the "old" and "new" arrays.
>maybe it is late , so i can't be over
>a little silly problem :
>
>in a table i have a field 'testupdated' ,
>in the same table in the before update event i have
>a trigger : ' mytable.testupdated = 'S' ,
>of course i can''t set its value to 'N' ......that trigger will change it in 'S' ,
>is it possible to exclude fields from that event ?
>.... in other words : don't fire the trigger when the field 'testupdated' changes
Next, don't do unconditional operations in triggers unless you INTEND for them to be unconditional.
Replace this line with:
if (
(old.testupdated is null and new.testupdated is not null)
or
(new.testupdated = old.testupdated)
or
(new.testupdated is null and old.testupdated is not null)
) then
new.testupdated = 'S';
(or whatever logic you intend to achieve with this trigger...)
./heLen