J'ai une table dans une base de données où la colonne _id est la clé primaire. Si j'essaie de faire un insert dans cette table en utilisant un _id qui existe déjà, mon application se bloque. Comment puis-je faire ceci? Existe-t-il un type particulier d'exception que je peux manger? J'ai essayé SQLiteException en vain.Explosion d'une application avec une clé primaire SQL conflictuelle
Répondre
J'ai compris mon problème. J'utilise maintenant insertOrThrow et attrape SQLiteExceptions. En outre, je jetais une autre exception tout le chemin vers le haut sans l'attraper n'importe où. Je suis en train d'attraper et d'enregistrer ceci.
Par définition, la clé primaire doit être unique - une seule valeur doit référencer une seule ligne. Vous ne pouvez faire que ce que vous voulez en changeant quelque chose - soit la structure de la base de données, donc cette colonne n'est plus définie comme une clé primaire (mais réfléchissez bien avant de le faire - toute application écrite contre l'ancien schéma supposons, lors de la sélection basée sur le champ _id, qu'un identifiant unique donnera une seule ligne, et vous casserez cette hypothèse, et très probablement l'application). L'autre chose est de changer les données pour lui donner un nouveau _id.
Merci pour votre réponse. Ce que je fais ici, c'est synchroniser les données tirées d'un service Web. Actuellement, la synchronisation est écrite de telle sorte qu'une nouvelle ligne ne sera jamais tirée deux fois. Cependant, si quelque chose glisse entre les mailles du filet, je ne veux pas que l'application plante sur l'utilisateur. Je comprends ce qu'est une clé primaire et je voudrais un moyen propre de gérer cette exception. – Andrew
- 1. SQL Server: nécessité d'ajouter une clé primaire
- 2. problème Android SQLite3 application clé primaire
- 3. varchar() clé primaire ou clé primaire int?
- 4. SQL Server ajoute la clé primaire
- 5. requête SQL: trouver une lacune dans une clé primaire
- 6. Clé primaire sur une colonne
- 7. l'ajout clé primaire à la vue sql
- 8. SQL Server: changement clé primaire avec des lignes liées
- 9. Ignorer les conflits de clé primaire avec la copie SQL
- 10. LINQ to SQL: Insérer une clé primaire sans identité
- 11. sql swap valeurs de clé primaire
- 12. Question SQL rapide: Syntaxe correcte pour créer une table avec une clé primaire dans H2?
- 13. Création d'une table avec une clé primaire et une clé unique
- 14. Utilisation de SELECT avec une clé primaire dans MySQL
- 15. Clé primaire Croissant et décroissant
- 16. Explosion ROOT.war
- 17. Sql Type de données pour la clé primaire - SQL Server?
- 18. recherche par clé primaire
- 19. l 'erreur linq-to-sql sur une table avec une clé primaire composite
- 20. SQL Server 2008 Recherche de texte intégral sur une table avec une clé primaire composite
- 21. Différence de performances SQL Server avec une clé primaire à une ou plusieurs colonnes?
- 22. Définir la clé primaire avec deux entiers
- 23. oracle clé primaire début avec la lettre
- 24. Meilleure clé primaire pour une table d'amitié
- 25. DBIC génère une erreur "Invalid precision" pour une clé primaire
- 26. Mysql Clone Row avec clé primaire
- 27. PostgreSQL bytea Clé primaire
- 28. Performances avec clé primaire en augmentation séquentielle
- 29. Clé primaire GUID non créée
- 30. Clé primaire vs. RRN
Y a-t-il une raison particulière pour laquelle vous insérez l'ID vous-même et ne laissez pas la base de données en attribuer une pour vous? En ce qui concerne le type d'exception, cela sera sûrement indiqué dans les détails de l'exception? – rrrr
Je synchronise les données provenant d'un service Web – Andrew