Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Importation cvs dans mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Importation cvs dans mysql

n°2250144
redmail
Posté le 04-02-2015 à 18:34:34  profilanswer
 

Bonjour à tous
 
J'espère être au bon endroit pour poser ma question.
 
Je souhaite importer un fichier cvs dans une table.
 
#cat Mon_fichier.cvs
prenom1, nom1, prénom1.nom1@exemple.com, password1
prenom2, nom2, prénom2.nom2@exemple.com, password2
prenom3, nom3, prénom3.nom3@exemple.com, password3
etc...
 
J'utilise la commande sql suivante :
 
mysql> LOAD DATA LOCAL INFILE '/home/redmail/Mon_fichier.cvs.' into table db.users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
 
L'import se passe bien (excepté pour les accents, mais c'est pas trop mon problème pour le moment...)
 
Mon problème et que "Mon_fichier.cvs" change tous les jours avec des ajouts et des suppressions d'utilisateur.
 
Comment tenir compte de ces modifications pour de pas avoir de double et supprimer les utilisateurs que n'existent plus ?
 
Merci d'avance pour votre aide.
 

mood
Publicité
Posté le 04-02-2015 à 18:34:34  profilanswer
 

n°2250231
gpl73
Posté le 05-02-2015 à 17:14:30  profilanswer
 

redmail a écrit :

Bonjour à tous
 
J'espère être au bon endroit pour poser ma question.
 
Je souhaite importer un fichier cvs dans une table.
 
#cat Mon_fichier.cvs
prenom1, nom1, prénom1.nom1@exemple.com, password1
prenom2, nom2, prénom2.nom2@exemple.com, password2
prenom3, nom3, prénom3.nom3@exemple.com, password3
etc...
 
J'utilise la commande sql suivante :
 
mysql> LOAD DATA LOCAL INFILE '/home/redmail/Mon_fichier.cvs.' into table db.users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
 
L'import se passe bien (excepté pour les accents, mais c'est pas trop mon problème pour le moment...)
 
Mon problème et que "Mon_fichier.cvs" change tous les jours avec des ajouts et des suppressions d'utilisateur.
 
Comment tenir compte de ces modifications pour de pas avoir de double et supprimer les utilisateurs que n'existent plus ?
 
Merci d'avance pour votre aide.
 


 
Bonjour, j'ai peur que tu n'aies pas beaucoup de solution...
C'est le problème d'importer des données d'un fichier plat (ou csv) dans une base de données...
 
Il faut que tu fasses une petite moulinette :
pour créer une table tempo (que tu vides ou que tu recrées à chaque fois), dans laquelle tu vas importer tes données,  
puis tu vérifies pour chacun des utilisateurs si celui ci existe ou pas dans ta table finale, et faire un insert ou un update en fonction.
Pour la suppression, c'est à voir tes règles de gestion:
Est ce que tu envoies tout les utilisateurs dans ton .csv valides ? si oui dans ce cas, tu supprimes de la table réelle ceux qui ne sont pas dans la table tempo.
 
Guillaume


Message édité par gpl73 le 05-02-2015 à 17:19:15

---------------
mieux vaut être un con au chaud, qu'un con gelé lol
n°2250242
redmail
Posté le 05-02-2015 à 19:33:43  profilanswer
 

Bonjour et merci Guillaume pour ta réponse.
 
Effectivement, en principe, tous les utilisateurs se retrouvent dans mon .csv.
 
Je suis en train de me demander, si le plus simple n'est pas d'effacer et réimporter tous les utilisateurs dans ma table !?
 
J'avais juste envisagé une possibilité de mise à jour du password par l'utilisateur dans la db...  mais je pense qu'ils sont pas intéressé :D  
 
Par-contre, si j'ai un problème lors de la création du csv ... (faut le tester avant l'import...)

n°2250244
gpl73
Posté le 05-02-2015 à 22:39:00  profilanswer
 

Une question toute bête?
Est ce que tu es obligé de passer par un point csv...
dans ton dernier post, tu dis :  
"J'avais juste envisagé une possibilité de mise à jour du password par l'utilisateur dans la db...  mais je pense qu'ils sont pas intéressé :D  "
cela veut dire que tes utilisateurs ont accès à ta base?
ne serait il pas plus simple de faire tout dans la db? création suppression update de tes utilisateurs...
 
Guillaume


---------------
mieux vaut être un con au chaud, qu'un con gelé lol
n°2250249
redmail
Posté le 06-02-2015 à 09:23:20  profilanswer
 

Non, je peux pas faire comme cela car les infos proviennent de la base ldap qui doit rester la principale base des utilisateurs. Je dois juste récupérer ces infos pour ma db mysql.
 
Si quelqu'un connait le moyen d'interroger directement ldap depuis mysql, je suis preneur !
 
En attendant, j'ai imaginé l'export ldap vers fichier csv puis import dans mysql.

n°2250253
flo850
moi je
Posté le 06-02-2015 à 09:57:38  profilanswer
 

tu déclares le login de ton utilisateur comme une clé unique dans ta base MySQL
 
tu dis dans ta base que pour les doublons il faut mettre à jour les données : "ON DUPLICATE UPDATE"  
 
Par contre pour ceux qui n'existent plus, tu vas être un peu emmerdé, sauf à désactiver les agents  dans ton LDAP. Comme ça tu mets à jour les agents qui sont désactivés


---------------

n°2250547
tanaka59
Posté le 10-02-2015 à 22:51:48  profilanswer
 

Bonsoir,  
 
Si tu peux travailler en bat et ligne de commande  
 
Télécharge  
 
iconv.exe avec les 3 dll suivant :
 
libcharset1.dll
libiconv2.dll
libintl3.dll
 
A placer dans un bat :
 
iconv -f windows-1252 -t UTF-8 [chemin_du_fichier_a_rencoder] [chemin_du_fichier_rencodé]

n°2250566
redmail
Posté le 11-02-2015 à 09:54:39  profilanswer
 

Merci tanaka59 mais je n'utilise pas Windows mais uniquement Linux.

n°2250568
mechkurt
Posté le 11-02-2015 à 10:00:48  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Importation cvs dans mysql

 

Sujets relatifs
probleme importation .CSV vers MySQLProblème à l'importation B.D.D MySQL
[MySQL] Importation fichier txt : nom de champs?exportation/importation base MySQL
[MYSQL] Problème Charset importation données - BIGDUMPImportation données XML vers BDD MySql
importation exportation excel mySQL ?importation fichier DBF sous MYSQL[résolu]
[PHP/mySQL] Importation "gros" dumps via phpMyAdmin sur free.fr[mysql-php] importation partiel de base de donnée
Plus de sujets relatifs à : Importation cvs dans mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR