Jag antar att du försöker säkerställa att Book
poster uppdateras när du ändrar Pname
kolumnen i Publisher
tabell, men Oracle har ingen on update cascade
.
Se här
för syntaxdiagrammet för references
klausul.
För att ändra primärnycklar i Oracle har du några alternativ:
-
Skjut upp begränsningen (främmande nyckel) kontrollera tills commit, uppdatera sedan både förälder och barn inom transaktionen.
-
Skapa en ny förälder med de uppdaterade uppgifterna, byt sedan alla barn och ta sedan bort den ursprungliga föräldern. Allt i en transaktion såklart.
-
Sluta använda föränderlig data som nyckel. Det tog lång tid för DBA:er att övertyga mig om att artificiella (surrogat)nycklar borde användas snarare än sann data, men detta var användningsfallet som till slut vann mig över. Att använda en konstgjord nyckel (som aldrig behöver ändras) innebär att detta problem försvinner helt.