Subject Re: [firebird-support] How to skip a trigger in the same trigger?
Author Martijn Tonies (Upscene Productions)
Hello Gabor,

>>> First question: why do you have an UPDATE <table1> in a BEFORE UPDATE
>> trigger on <table1>?
>>
>>The table have many fields and a UNIQUE constraint with four fields, one
>>the ISDEFAULT from it (only one default accepted for groups of rows
>>depend on the other three fields (which included also in the UNIQUE)
>>value). If the user change the default row to not default and set other
>>to default in the application I need to set the old default row to not
>>default because if not do before set the new default the UPDATE violate
>>the UNIQUE.
>
>
>I agree with Dimitry, you might want to revise this design. If you have a
>table with a single value and a reference to this table, there can be only
>1 default
>row, by design.
>
>Removing a row from this table and inserting a new one (or updating the old
>row),
>would then always have a single row assigned to be the default and avoids
>the recursive trigger.

Alternatively, make this part of the trigger only fire when ISDEFAULT = T,
then you can safely set ISDEFAULT to 'F' from within the trigger.


With regards,

Martijn Tonies
Upscene Productions
http://www.upscene.com

Download Database Workbench for Oracle, MS SQL Server, Sybase SQL
Anywhere, MySQL, InterBase, NexusDB and Firebird!