Subject | Re: [firebird-support] How to skip a trigger in the same trigger? |
---|---|
Author | Martijn Tonies (Upscene Productions) |
Post date | 2016-04-14T11:39:46Z |
Hello Gabor,
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!
>>> First question: why do you have an UPDATE <table1> in a BEFORE UPDATEAlternatively, make this part of the trigger only fire when ISDEFAULT = T,
>> 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.
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!