Maison > base de données > tutoriel mysql > Comment résoudre les erreurs « Échec de la contrainte UNIQUE : code de résultat sqlite3 1555 » dans SQLite ?

Comment résoudre les erreurs « Échec de la contrainte UNIQUE : code de résultat sqlite3 1555 » dans SQLite ?

Barbara Streisand
Libérer: 2024-12-25 15:22:18
original
187 Les gens l'ont consulté

How to Resolve

Comment gérer l'erreur d'échec de la contrainte UNIQUE dans SQLite

Problème :

Lors de l'insertion de données dans votre base de données SQLite, vous recevez l'erreur "Échec de la contrainte UNIQUE : code de résultat sqlite3 1555."

Explication :

Cette erreur se produit lorsque vous tentez d'insérer des données avec une valeur de clé primaire qui existe déjà dans la table. Par défaut, SQLite applique des contraintes uniques sur les colonnes de clé primaire pour éviter les entrées en double.

Solution :

Il existe deux solutions principales pour gérer cette erreur :

1. Ignorer les enregistrements en double :

Pour ignorer les enregistrements en double et continuer à insérer d'autres données, utilisez la syntaxe suivante :

INSERT OR IGNORE INTO (column1, column2, ...) VALUES (value1, value2, ...);
Copier après la connexion

2. Remplacer les enregistrements existants :

Pour remplacer l'enregistrement existant par les nouvelles données, utilisez la syntaxe suivante :

INSERT OR REPLACE INTO (column1, column2, ...) VALUES (value1, value2, ...);
Copier après la connexion

Exemple :

Dans le code fourni, vous insérez des valeurs list_id en double dans la table de liste et des valeurs item_id en double dans la table d'éléments. Pour gérer cette erreur, vous pouvez utiliser le code modifié suivant :

Liste modifiée Insérer des déclarations :

INSERT OR IGNORE INTO list VALUES (1, "user1-list1", 1);
INSERT OR IGNORE INTO list VALUES (2, "user1-list2", 1);
INSERT OR IGNORE INTO list VALUES (3, "user1-list3", 1);
INSERT OR IGNORE INTO list VALUES (1, "user2-list1", 2);
INSERT OR IGNORE INTO list VALUES (1, "user3-list1", 3);
INSERT OR IGNORE INTO list VALUES (2, "user3-list2", 3);
Copier après la connexion

Élément modifié Insérer des déclarations :

INSERT OR IGNORE INTO item VALUES (1, "user1-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user1-list1-item2", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user1-list2-item1", "FALSE", 2);
INSERT OR IGNORE INTO item VALUES (1, "user1-list3-item1", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (2, "user1-list3-item2", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (1, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list3-item1", "FALSE", 2);
Copier après la connexion

En utilisant la syntaxe INSERT OR IGNORE ou INSERT OR REPLACE, vous pouvez résoudre le problème UNIQUE. erreur d'échec de la contrainte et insérez vos données comme prévu.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal