Erreur "UNIQUE constraint failed" avec fichier csv

Résolu/Fermé
titusIII
Messages postés
93
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
16 décembre 2014
- 11 mai 2014 à 15:04
titusIII
Messages postés
93
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
16 décembre 2014
- 11 mai 2014 à 21:41
Bonjour tout le monde,
Je suis en train de ranger des quantités massives de données (horaires de bus) dans des bases SQL.
Je développe un programme en C# qui appelle le petit utilitaire Sqlite3 pour gérer la base de donnée.
Les données que je dois traiter sont rangée dans des fichiers txt et sont déja sous la norme csv, j'ajoute juste l'ID au début de chaque ligne en l'incrémentant avant balancer le fichier csv dans la base.
Seulement j'ai une montagne d'erreurs pour les gros fichiers (plus de 500 000 lignes). L'erreur est la même partout :
INSERT failed: UNIQUE constraint failed: trips.ID

trips étant le nom de ma table.

J'ai essayé pas mal de truc du genre :
- supprimer les " qui entourent mes données
- bricoler avec l'ID
- menacer ma base de donnée avec un couteau ...

Voici un morceau d'un de mes fichiers csv pour ma table trips :

0,"1","20","0006","6 > Saint-Jacques Morinais","0","1012124"
1,"10","23","0006","6 > Cesson-Sevigne Base de Loisirs","1","1012876"
2,"100","23","0006","6 > Cesson-Sevigne Base de Loisirs","1","1012869"
3,"1000","23","0011","11 > ZI Ouest","0","1012731"
4,"10000","23","0002","2 > Grand Quartier","1","1012675"
5,"10001","25","0002","2 > Grand Quartier","1","1054029"
6,"10002","27","0002","2 > Grand Quartier","1","1045931"
7,"10003","20","0002","2 > Grand Quartier","1","1011935"
8,"10004","21","0002","2 > Grand Quartier","1","1004867"
9,"10005","22","0002","2 > Grand Quartier","1","1012169"
10,"10006","23","0002","2 > Grand Quartier","1","1012679"

Merci pour votre aide,

Titus.

3 réponses

titusIII
Messages postés
93
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
16 décembre 2014
2
11 mai 2014 à 15:19
Ah!
Une partie du problème est résolu. j'avais mal écrit le mot "trips" quand je demandai le DROP de ma table avant une mise à jour.

J'ai toujours les erreurs mais les données sont toutes là. (Apres rapide vérification, je vais pas me taper les 700 000 lignes)
Je suis un amateur du code "no warning" j'aimerai bien résoudre ce problème quand même!
0
Utilisateur anonyme
11 mai 2014 à 18:27
Bonjour

Tu n'as pas moyen de faire afficher plus précisément quelles lignes provoquent l'erreur, histoire de les regarder de plus près ?
Sinon, pourquoi mettre toi-même l'ID ? Sqlite3 fournit un champ auto-incrémenté, à quoi bon en ajouter un ? Voir https://sqlite.org/autoinc.html
0
titusIII
Messages postés
93
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
16 décembre 2014
2
11 mai 2014 à 21:41
Je viens de refaire de test, j'ai plus aucune erreur...

J'ai pourtant pas modifié mon code depuis.

La seule chose qui a pu provoquer ça c'est les histoires de "lecture seule" que windows avait appliqué partout. Que j'ai enlevé donc!

Je vois pas d'autre explication!

Merci quand même pour ton attention!
J'ai pas fini, j'ai juste fait la partie "rangement" qui range les données dans une bdd (coté serveur)

Je viens d'attaquer le code du client, donc calculateur et tout. Je risque d'avoir pas mal de problèmes encore!

A bientot et merci!
0