Subject Re: [firebird-support] change a trigger that I create with RDB $ SYSTEM_FLAG = 1.
Author Helen Borrie
luisalejand@...,

> how can I change a trigger that I create with RDB $ SYSTEM_FLAG = 1.

You can't. RDB$SYSTEM_FLAG is an internal setting and, as you have
discovered, trying to set it yourself by modifying the metadata table
has corrupted the metadata.

> He believes it in this way so as not to allow the modification of
> the data of a table that stores the log.

He believes wrongly. The flag indicates to the engine whether the
object (in this case, the trigger) was created by the engine in
support of some metadata operation. It has nothing to do with
logging.

> Now I know it's a mistake to place the field RDB $ SYSTEM_FLAG = 1,
> but I need to reset it to 0 to be able to modify it.

Get all users off line (to empty the cache), then log in as the table
owner. Save the trigger code to a text file, then DROP the trigger.
Recreate the trigger using the PSQL code you saved.

If you are using Firebird prior to Fb3 then GET THE MESSAGE that you
should **NEVER** try to modify the system tables. From FB3 onwards,
those tables are read-only but with older versions you can still shoot
yourself in the foot.

Helen


---
This email has been checked for viruses by AVG.
https://www.avg.com