Presumo che tu stia cercando di assicurarti che il Book
i record vengono aggiornati ogni volta che modifichi il Pname
colonna nel Publisher
tabella, ma Oracle non ha on update cascade
.
Vedi qui
per il diagramma sintattico dei references
clausola.
Per modificare le chiavi primarie in Oracle, hai alcune opzioni:
-
Rinvia il vincolo (chiave esterna) controlla fino al commit, quindi aggiorna sia il genitore che il figlio all'interno della transazione.
-
Crea un nuovo genitore con i dettagli aggiornati, quindi vai a cambiare tutti i figli, quindi elimina il genitore originale. Tutto in una transazione ovviamente.
-
Smetti di usare i dati mutevoli come chiave. Ci è voluto molto tempo prima che i DBA mi convincessero che le chiavi artificiali (surrogate) dovrebbero essere utilizzate piuttosto che i dati veri, ma questo è stato il caso d'uso che alla fine mi ha convinto. L'uso di una chiave artificiale (che non deve mai cambiare) significa che questo problema scompare completamente.