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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MYSQL] Import fichier csv : empecher l'update de certaines colonnes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MYSQL] Import fichier csv : empecher l'update de certaines colonnes

n°2279676
tomware
Moteur à eau
Posté le 18-04-2016 à 23:40:11  profilanswer
 

Bonjour, :hello:  
 
Je suis sur un hébergement mutualisé.
 
Ma table est la suivante :
Contact | date de relance | commentaire
 
J'ai un fichier csv contenant 2 colonnes "contact" et "date de relance".  
 
Voici la maj que je souhaite faire :
envoie du fichier, mets a jours les données existantes, et conserve celles insérées
 
http://image.noelshack.com/minis/2016/16/1461015492-screen.png
 
Le truc c'est que j'y arrive pas. Meme si je précise que 2 colonnes "contact" et "date de relance" dans l'import, ca va quand meme m'effacer les commentaires.
ps : j'ai essayé avec et sans "Remplacer les données de la table avec le fichier"
 
sauriez vous comment faire ?
 
merci  :jap:


---------------
http://www.je-suis-charlie.fr Allumez une bougie !
mood
Publicité
Posté le 18-04-2016 à 23:40:11  profilanswer
 

n°2279686
mechkurt
Posté le 19-04-2016 à 09:59:49  profilanswer
 

Bonjour,
Si tu coches la case "Remplacer les données de la table", il vas simplement faire un TRUNCATE de ta table pour la vider avant d'importer.
Je crois que dans un import via phpmyadmin tu ne peux faire qu'un INSERT INTO, hors toi tu aurais besoin d'un INSERT IGNORE et/ou un REPLACE et/ou un UPDATE.
Je penses qu'il faut que tu importes dans un autre table (import_csv par exemple) et qu'en suite tu fasse 2 requêtes SQL, une qui met à jour les champs existant, et une autre qui crée les nouveau enregistrement.
Et que ta colonne "Contact" soit une clefs unique sur ta table 1212 bien sur ! ^^

Code :
  1. --MISE A JOUR
  2. UPDATE `import_csv`, `1212` SET `1212`.`date de relance` = `import_csv`.`date de relance` WHERE `1212`.`Contact` = `import_csv`.`Contact`;
  3. --IMPORT
  4. INSERT IGNORE INTO `1212` (`Contact`, `date de relance`) SELECT `Contact`, `date de relance` FROM `import_csv`;


---------------
D3
n°2279761
tomware
Moteur à eau
Posté le 19-04-2016 à 17:49:23  profilanswer
 

Merci beaucoup pour ta réponse détaillée mechkurt !
 
je vais m'en servir :jap:


---------------
http://www.je-suis-charlie.fr Allumez une bougie !

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

  [MYSQL] Import fichier csv : empecher l'update de certaines colonnes

 

Sujets relatifs
[CSHARP] comparer caractère d'un fichier texteOuverture et lecture de fichier PDF
besoin de gagner du temps sur le cacul de recherche dans gros fichierRécupérer une url depuis Mysql
parseur et fichierConvertir fichier PDF en fichier txt
utilisation d'un fichier d'initialisationGrunt-Sass Libsass import sprites
Lire fichier excel écrire dans bddImpact modification "type" d'un fichier
Plus de sujets relatifs à : [MYSQL] Import fichier csv : empecher l'update de certaines colonnes



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR