sql >> Database teknologi >  >> RDS >> Oracle

får fejl ORA-00907 under oprettelse af en tabel i sql-udvikler

Jeg går ud fra, at du forsøger at sikre, at Book poster opdateres, hver gang du ændrer Pname kolonnen i Publisher tabel, men Oracle har ingen on update cascade .

Se her for syntaksdiagrammet for references klausul.

For at ændre primærnøgler i Oracle har du et par muligheder:

  • Udskyd begrænsningen (fremmed nøgle) tjek indtil commit, og opdater derefter både forælder og barn i transaktionen.

  • Opret en ny forælder med de opdaterede detaljer, så skift alle børn, og slet derefter den oprindelige forælder. Alt sammen selvfølgelig i en transaktion.

  • Stop med at bruge mutable data som en nøgle. Det tog lang tid for DBA'er at overbevise mig om, at kunstige (surrogat)nøgler skulle bruges frem for ægte data, men dette var den use case, der til sidst vandt mig. Brug af en kunstig nøgle (som aldrig skal ændres) betyder, at dette problem forsvinder fuldstændigt.




  1. Sammenføj flere rækker i én kolonne ved hjælp af en funktion i Oracle med 3 relaterede tabeller

  2. hvordan man skriver SQL Query i cakephp?

  3. Binding af tom liste eller nulværdi til tabelværdiparameter på en lagret procedure (.NET)

  4. Hvis andet på WHERE-klausulen