Zakładam, że starasz się upewnić, że Book
rekordy są aktualizowane za każdym razem, gdy zmienisz Pname
kolumna w Publisher
tabela, ale Oracle nie ma on update cascade
.
Zobacz tutaj
dla diagramu składni references
klauzula.
Aby zmienić klucze podstawowe w Oracle, masz kilka opcji:
-
Odrocz ograniczenie (klucz obcy) sprawdź aż do zatwierdzenia, a następnie zaktualizuj zarówno rodzica, jak i dziecko w ramach transakcji.
-
Utwórz nową rodzic ze zaktualizowanymi danymi, a następnie zmień wszystkie dzieci, a następnie usuń pierwotnego rodzica. Oczywiście wszystko w transakcji.
-
Przestań używać zmiennych danych jako klucza. DBA zajęło dużo czasu, aby przekonać mnie, że należy używać sztucznych (zastępczych) kluczy, a nie prawdziwych danych, ale to był przypadek użycia, który ostatecznie mnie przekonał. Użycie sztucznego klucza (który nigdy nie musi się zmieniać) oznacza, że ten problem całkowicie zniknie.