Je dois copier des tables d'une base de données Oracle vers une base de données db2 v7, et pour cela (éviter des millions de gouttes et créer) je voudrais savoir si db2 a une fonctionnalité comme Oracle pour activer/désactiver les contraintes temporairement sans les laisser tomber. Merci d'avance, Mauro.Existe-t-il un moyen d'activer/désactiver les contraintes dans db2 v7?
5
A
Répondre
1
Je ne suis pas sûr si cela fonctionne dans la version 7, mais vous pouvez essayer ce qui suit:
set integrity for table_name off
set integrity for table_name foreign key immediate unchecked
Et vous pouvez faire vos insertions. Pour réactiver, vous pouvez effectuer les opérations suivantes:
set integrity for table_name immediate checked
5
Vous pouvez faire:
ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> NOT ENFORCED
puis réactiver:
ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> ENFORCED
Cette réalité ne désactive pas les contraintes. La première ligne les désactive, mais met la table dans l'état "check pending", ce qui signifie que vous ne pouvez pas effectuer la plupart des opérations. La deuxième ligne active à nouveau les contraintes, elle fait donc la même chose que la troisième ligne. La seule différence est dans le mot coché/non coché, ce qui signifie que les contraintes doivent être vérifiées pour les violations juste après les avoir réactivées. – Jardo