Instruction Insert tenté d'inclure un double de la clé
Essayez d'exécuter
INSERT INTO BOOKING_EXTRAS (BOOKING_ID, EXTRAS_, EXTRAS_PRICE) VALUES ('1','Phone call: 1.80','1.8');
dans Oracle SQL Developer. Ive a eu il fonctionne, mais lorsque je le ferme, puis la rouvrir, j'obtiens cette erreur:
Error starting at line 1 in command:
INSERT INTO BOOKING_EXTRAS (BOOKING_ID, EXTRAS_, EXTRAS_PRICE) VALUES ('1','Phone call: 1.80','1.8')
Error report:
SQL Error: ORA-00001: unique constraint (COURSEWORK_XE.BOOKING_EXTRAS_PK) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
comment pourrais-je résoudre ce problème? Sa passe à chaque table, je exécuter!
- Vérifiez dans le tableau, on dirait de la table a un dossier avec la même clé primaire.
Vous devez vous connecter pour publier un commentaire.
Vous devez effacer les tables ou insérer de nouvelles informations, une base de données ne veux pas de doublons parce que qui le rend impossible à trouver les bonnes lignes plus tard.
Si votre unique colonne est remplie par une séquence, assurez-vous que votre séquence est la même "dernière valeur" en tant que votre plus haute valeur de colonne unique.
J'ai juste rencontré un problème où l'ordre avait un "la dernière valeur dans la" qui était de beaucoup inférieur à la valeur la plus élevée dans ma colonne unique. Le DBA a couru un script pour mettre à jour la séquence jusqu'à ce que le nombre devrait ont été, et mon erreur a disparu.
Maintenant à savoir pourquoi la séquence a été tellement mauvais...
En outre, si cette BOOKING_ID (sert actuellement en tant que clé primaire si je devine à droite) ne signifie pas réellement quelque chose pour vous, vous pouvez le définir comme INCRÉMENT AUTOMATIQUE dans votre schéma, puis par la suite vous n'avez pas besoin d'insérer une valeur pour BOOKING_ID, le système va automatiquement trouver une valeur qui n'est pas en double pour vous. Cela peut vous faire économiser beaucoup d'effort.