2009-06-30 16 views

risposta

3

Le chiavi esterne AFAICT non possono essere disabilitate in Firebird fino a 2.1.
Dovresti lasciarli e ricrearli.
C'è un similar thread su Devshed.

+1

+1. Con uno strumento che mostra le tabelle di sistema si può vedere che non vi è alcun campo in RDB $ RELATION_CONSTRAINTS che consentirebbe di disabilitare i vincoli di chiave esterna. Gli indici OTOH possono essere resi inattivi e RDB $ INDICES ha un campo RDB $ INDEX_INACTIVE. – mghie

+0

Sì, ma gli indici che supportano i vincoli non possono essere disattivati. Provare a farlo risulta in un errore. –

0

Immagino che l'unico modo sia quello di abbandonare e poi ricrearli. Dato che i vincoli non sono dati, in realtà non perdi alcuna informazione dal database, quindi è un'operazione innocua (a patto che tu mantenga lo script per ricrearli successivamente).

La versione di FlameRobin nel repository SVN ha un'opzione per generare automaticamente gli script DROP e CREATE per le dipendenze della colonna di tabella selezionate. L'ultima versione ufficiale ha la stessa opzione per le tabelle intere, quindi potrebbe aiutarti. Non vi è alcuna possibilità di farlo per l'intero database, però. Forse qualche altro amministratore. lo strumento ha questa caratteristica.