Subject Re: [firebird-support] Re: Rename a foreign key
Author Рустам Муса-Ахунов
>   Use "ALTER TABLE ... DROP CONSTRAINT ..." and then "ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ..."
>
> Thats no fast if the table is huge. This method I know. 

I think, "slow" here is not a problem - you do it only one time, and not on regular basis.

If you mean that this is slow when do it manually, because of large number of FK's - you can use some automation, e.g.:
- export all FK's to *.sql script (as full CREATE CONSTRAINT queries). Or, you can execute custom query on table RDB$RELATION_CONSTRAINTS, using RDB$RELATION_NAME as base for new FK name, to build "creator" script with new names.
- using text search/replace, create separate *.sql for DROP-ing originals
- manually edit names
- then 1) execute DROP-ing script 2) execute "creator" script with new names.

Also you can try update FK names in RDB$RELATION_CONSTRAINTS table (may be with automation), but i don't know if this enough for DB to work correctly after this.