2009-01-07 10 views
5

Tabloları bir Oracle veritabanından bir db2 v7 olanına kopyalamak zorundayım ve bunu yapmak için (milyonlarca damladan ve oluşturmadan kaçınmak) db2'nin geçici olarak kısıtlamaları etkinleştirmek/devre dışı bırakmak için bir özelliğe sahip olup olmadığını bilmek istiyorum onları düşürmeden.Db2 v7'de kısıtlamaları etkinleştirmek/devre dışı bırakmak için bir yol var mı?

Şimdiden teşekkür ederiz, Mauro. Bu sürümde 7'de çalışıp çalışmadığını

cevap

1

emin değilim, ancak aşağıdaki deneyebilirsiniz:

set integrity for table_name off 
set integrity for table_name foreign key immediate unchecked 

Ve sonra ekler yapabilirsiniz.

set integrity for table_name immediate checked 
+0

için, daha sonra aşağıdakileri yapabilirsiniz, yeniden etkinleştirmek kısıtlamaları devre dışı bırakmaz. İlk satır onları devre dışı bırakır, ancak tabloyu "işlemin beklemede durumuna" geçirir, bu da temelde çoğu işlemi gerçekleştiremeyeceğiniz anlamına gelir. İkinci satır, kısıtlamaları tekrar etkinleştirir, böylece üçüncü çizgi ile aynı şeyi yapar. Tek fark, kontrol edilen/işaretlenmeyen kelimedir, yani kısıtlamalar tekrar açıldıktan hemen sonra ihlaller için kontrol edilmesi gerektiği anlamına gelir. – Jardo