Bonjour,
Quelques jours de recherche et je ne trouve de solutions à mon problème.
Contexte :
Je possède 2 tables : produit et produit_i18n
Pour faire simple je réduit mes champs :
- PRODUIT
ID (int) auto_increment
CATEGORIE (INT)
MARQUE (VARCHAR)
PRIX (DOUBLE)
- PRODUIT_I18N
ID (INT) auto_increment
LANGUE VARCHAR(2)
TITRE VARCHAR(20)
CONTENU TEXT
Je veux faire un import en masse qui me rempli ces 2 tables
Pour celà, j'utilise LOAD DATA INFILE
1ère solution qui fonctionne :
LOAD DATA INFILE 'mon_fichier_produit.csv' INTO TABLE PRODUIT FIELDS TERMINATED BY ';' ENCLOSED BY '\"' IGNORE 1 LINES";
puis
LOAD DATA INFILE 'mon_fichier_produit_traduction.csv' INTO TABLE PRODUIT_I18N FIELDS TERMINATED BY ';' ENCLOSED BY '\"' IGNORE 1 LINES";
Avec les CSV qui ressemble à ça :
=> Ce que je voudrais c'est à partir d'un seul fichier CSV avec ce format :mon_fichier_produit.csv:
id;categorie;marque;produit
mon_fichier_produit_traduction.csv:
id;titre;contenu
c'est de charger les 2 tables dans un même LOAD DATA INFILEid;categorie;marque;produit;titre;contenu
Un truc du genre
Mais ça ne marche pas.LOAD DATA INFILE 'mon_fichier_produit_traduction.csv'
INTO TABLE PRODUIT_I18N
FIELDS TERMINATED BY ';' ENCLOSED BY '\"' IGNORE 1 LINES
(ID,CATEGORIE,MARQUE,PRODUIT)
INTO TABLE PRODUIT_I18N FIELDS TERMINATED BY ';' ENCLOSED BY '\"' IGNORE 1 LINES
(ID,TITRE,CONTENU)
J'ai trouvé des solutions qui consiste à mettre les mêmes champs dans des tables différentes mais ce n'est pas mon cas.
Donc si vous avez vu ce cas, je suis GRAND prenneur ^^
Merci de votre aide
PS : je ne souhaite pas passer par un script PHP qui va parser mon fichier csv, car au niveau optimisation, LOAD DATA INFILE est bien au dessus







Répondre avec citation





pour la réponse

Partager