Greetins all,
 

 I'm dealing with a customer database (FB 2.5.2), which seems to be missing 
several system triggers for foreign key constraints.
 

 He has been receiving the ISC ERROR CODE:335544466 with the message
--------------------------
violation of FOREIGN KEY constraint "XXX" on table "YYY"
Foreign key references are present for the record

 --------------------------
 when trying to delete some records.
 

 The same operation is working fine on the database I'm shipping with the 
application.
 

 When doing some research, I've found a similar post and the reason seemed to 
be missing 
system triggers for foreign key constraints.
 

 I've used the suggested statement (slightly modified as it was not about a 
check contraint in my case) for a check
 

         select trim(cc.rdb$constraint_name), trim(cc.rdb$trigger_name), 
rc.rdb$relation_name, trg.rdb$trigger_source 
        from rdb$relation_constraints rc
          join rdb$check_constraints cc on rc.rdb$constraint_name = 
cc.rdb$constraint_name 
          join rdb$triggers trg on cc.rdb$trigger_name = trg.rdb$trigger_name 
        where rc.rdb$relation_name = 'table_with_constraint'

 

 and indeed received no results on the "broken" database, while getting 2 
entries on the original database.
 

 A further look into RDB$TRIGGERS using "select * from rdb$triggers order by 
RDB$RELATION_NAME" shows me, that there are 1220 entries in the original 
database and only 196 in the customer database.
 

 The number of entries with rdb$system_flag = 0 is the same in both databases, 
so my own trigger seems to be fine.
 

 When I drop the foreign key contraint in question and add it again, the error 
when deleting the records, is gone, and I'm receiving 2 entries from the joint 
query above (was none before) and also the number from RDB$TRIGGERS gets up by 
2 to 198, so it looks that for some foreign key constraints the system triggers 
are missing, right?
 

 What would be the best was to find out which ones are missing and to re-create 
them or to drop and re-add the foreign key constraints, which seems to create 
system triggers automatically. Ideally a script that would fix, what's missing, 
and ignore what it's there as it should.
 

 Best regards,
 Patrick

  • [firebi... patrick_mar...@yahoo.com [firebird-support]
    • OD... Karol Bieniaszewski liviusliv...@poczta.onet.pl [firebird-support]

Reply via email to