Oracle
 sql >> Base de données >  >> RDS >> Oracle

obtenir l'erreur ORA-00907 lors de la création d'une table dans le développeur sql

Je suppose que vous essayez de vous assurer que le Book les enregistrements sont mis à jour chaque fois que vous modifiez le Pname colonne dans la colonne Publisher table, mais Oracle n'a pas de on update cascade .

Voir ici pour le diagramme de syntaxe des references clause.

Pour changer les clés primaires dans Oracle, vous avez plusieurs options :

  • Différer la contrainte (clé étrangère) vérifier jusqu'à la validation, puis mettre à jour le parent et l'enfant dans la transaction.

  • Créer un nouveau parent avec les détails mis à jour, puis modifiez tous les enfants, puis supprimez le parent d'origine. Le tout dans une transaction bien sûr.

  • Arrêtez d'utiliser des données modifiables comme clé. Il a fallu beaucoup de temps aux administrateurs de base de données pour me convaincre que des clés artificielles (de substitution) devaient être utilisées plutôt que de vraies données, mais c'est le cas d'utilisation qui m'a finalement convaincu. L'utilisation d'une clé artificielle (qui ne doit jamais changer) signifie que ce problème disparaît totalement.