Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Fehlermeldung ORA-00907 beim Erstellen einer Tabelle in SQL Developer

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.