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, ...);
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, ...);
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);
É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);
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!