sql >> Database >  >> RDS >> Oracle

krijg fout ORA-00907 tijdens het maken van een tabel in sql developer

Ik neem aan dat je probeert ervoor te zorgen dat het Book records worden bijgewerkt wanneer u de Pname . wijzigt kolom in de Publisher tabel, maar Oracle heeft geen on update cascade .

Zie hier voor het syntaxisdiagram van de references clausule.

Om primaire sleutels in Oracle te wijzigen, hebt u een paar opties:

  • De beperking uitstellen (buitenlandse sleutel) check tot commit, update dan zowel ouder als kind binnen de transactie.

  • Maak een nieuwe ouder met de bijgewerkte details, verander dan alle kinderen en verwijder vervolgens de oorspronkelijke ouder. Allemaal in een transactie natuurlijk.

  • Stop met het gebruik van veranderlijke gegevens als sleutel. Het duurde lang voordat DBA's me ervan overtuigden dat kunstmatige (surrogaat) sleutels moesten worden gebruikt in plaats van echte gegevens, maar dit was de use case die me uiteindelijk overtuigde. Door een kunstmatige sleutel te gebruiken (die nooit hoeft te veranderen) verdwijnt dit probleem volledig.




  1. raar - mysql's sql::SQLException wordt niet gevangen door zijn type, maar wordt gevangen als std::exception en succesvol teruggeworpen

  2. Hoe installeer ik het mysqlnd-stuurprogramma met MAMP?

  3. Aantal overeenkomende woorden tellen

  4. Zoek sql-records met vergelijkbare tekenreeksen