Maison >base de données >tutoriel mysql >Comment résoudre l'erreur SQLite 1555 : échec de la contrainte UNIQUE sur Persons.id ?

Comment résoudre l'erreur SQLite 1555 : échec de la contrainte UNIQUE sur Persons.id ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 15:49:11515parcourir

How to Resolve SQLite Error 1555: UNIQUE Constraint Failed on Persons.id?

SQLITE_CONSTRAINT_PRIMARYKEY : Code de résultat SQLite 1555 - Échec de la contrainte UNIQUE : Persons.id

Votre message d'erreur indique une violation de contrainte UNIQUE lors de l'insertion de données dans votre base de données SQLite. Plus précisément, cela suggère que la colonne id de la table Persons contient déjà la même valeur que celle que vous essayez d'insérer.

Dans le code fourni, vous avez défini la colonne id comme clé primaire pour le tables d'utilisateurs et d'éléments, ce qui garantit que chaque ligne a un identifiant unique. Cependant, il semble que vous ayez des entrées en double dans les tables utilisateur ou élément, ce qui entraîne une violation de la contrainte UNIQUE.

Pour résoudre ce problème, vous pouvez soit :

  • Modifiez les instructions d'insertion de données : Assurez-vous que chaque instruction d'insertion inclut une valeur d'identifiant unique pour la ligne correspondante. Vous pouvez générer des identifiants uniques à l'aide de fonctions telles que UUID(), RANDOM() (avec la version SQLite >=3.9) ou en utilisant une colonne de clé primaire à incrémentation automatique.
  • Utilisez INSERT OR IGNORE ou Instruction INSERT OR REPLACE : Ces instructions vous permettent de contourner la vérification de contrainte UNIQUE. INSERT OR IGNORE ignorera les entrées en double et continuera à insérer d'autres enregistrements, tandis que INSERT OR REPLACE remplacera les entrées existantes par les nouvelles valeurs.

Voici un exemple utilisant INSERT OR IGNORE :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn