Hab den Thread nur quergelesen, also vielleicht gibt's sinnlose Wiederholungen.
Ein Index hat NICHTS mit der Funktionalität des Foreign Key zu tun.
Ein Foreign oder Primary Key ist eine Regel, die die Existenz des Fremdschlüssels zusichert oder die Eindeutikeit (Primärschlüssel) usw...
Ein zusätzlich definierter Index (ob automatisch angelegt oder per
SQL erzeugt) beschleunigt lediglich den Zugriff auf die Werte in der Schlüsselspalte, um die notwendigen Prüfungen für den FK Constraint möglichst schnell prüfen zu können. Lässt man die Indizes weg, löscht sie oder disabled sie, ändert das nichts an der Funktionalität! Nur die Performnace dürfte bei größeren Tabellen deutlich in den Keller gehen.
Hier
http://www.firebirdfaq.org/faq176/ gefunden:
Code:
If you use Firebird 1.x, you can run the following
query to get statements to execute and then copy/paste the result and execute:
select 'ALTER TABLE '||r.rdb$relation_name
||' DROP CONSTRAINT '||r.rdb$constraint_name||';'
from rdb$relation_constraints r
where (r.rdb$constraint_type='FOREIGN KEY')
Hab das Fazit vergessen. Man muss also die Constraints (ebenfalls) entfernen/disablen, dazu der Beispielcode, der ein Löschskript erzeugt.
(Ratsam ist natürlich, auch ein Script für die Neuerstellung nach erfolgreicher Migration zu haben / anzufertigen)