Ich nehme an, Sie versuchen sicherzustellen, dass das Book
Datensätze werden immer dann aktualisiert, wenn Sie den Pname
ändern Spalte im Publisher
Tabelle, aber Oracle hat keinen on update cascade
.
Siehe hier
für das Syntaxdiagramm der references
Klausel.
Um Primärschlüssel in Oracle zu ändern, haben Sie einige Möglichkeiten:
-
Einschränkung aufschieben (Fremdschlüssel) bis zum Festschreiben prüfen, dann Eltern und Kind innerhalb der Transaktion aktualisieren.
-
Erstellen Sie eine neue Elternteil mit den aktualisierten Details, ändern Sie dann alle Kinder und löschen Sie dann das ursprüngliche Elternteil. Alles natürlich in einer Transaktion.
-
Hören Sie auf, veränderliche Daten als Schlüssel zu verwenden. Es hat lange gedauert, bis DBAs mich davon überzeugt haben, dass künstliche (Ersatz-)Schlüssel anstelle echter Daten verwendet werden sollten, aber dieser Anwendungsfall hat mich schließlich überzeugt. Die Verwendung eines künstlichen Schlüssels (der sich nie ändern muss) bedeutet, dass dieses Problem vollständig verschwindet.