2010-12-14 64 views
2

J'essaie de charger des données dans une table mysql en utilisant LOAD DATA LOCAL INFILE en utilisant le code ci-dessous.mysql load data infile local

Mysql:

LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc) 

Edit: changé INFILE LOCAL DE DONNÉES DE CHARGE à LOADA DATA INFILE, id SET supprimé = null, ajouté IGNORE 1 LIGNES

je reçois pas d'erreurs et pas de documents importés. Je crois que le problème est lié aux noms des colonnes, mais j'ai de la difficulté à bien comprendre ce que ces noms devraient être. Devraient-ils être les noms de colonne réels dans le fichier CSV? ou les noms de champs dans la table DB? Je voudrais aussi avoir une clé primaire auto_incremented (id).

CSV:

recloc,client_acc 
"NLGSX3","CORPORATE" 
"7SC3BA","QUALITY ASSURANCE" 
"3B9OHF","90717-6710" 

Toute suggestion à ce que je peux faire mal? Merci!

Répondre

2

Les noms de colonnes au format CSV ne sont pas nécessaires. Vous devez donc ajouter la clause IGNORE 1 LINES.

Les colonnes de votre requête (recloc,client_acc) doivent correspondre aux colonnes de la table. La première colonne de CSV sera insérée dans recloc, la deuxième dans client_acc.

Si vous ne spécifiez pas la colonne AUTO_INCREMENT dans l'instruction, mais qu'il y en a une dans la table, elle doit se remplir automatiquement.

+0

"IGNORE 1 LIGNES" ajoutés, supprimés "SET id = null", toujours pas de chance. Je stocke également le CSV dans le répertoire du script d'importation mais j'ai également essayé le chemin du serveur. Ne devrais-je pas avoir une erreur mysql? –

+0

Après plus de recherches, j'ai changé LOAD DATA LOCAL INFILE pour LOAD DATA INFILE car j'utilise des fichiers stockés sur le serveur. –

0

solution à court et doux pour Excel pour importer des données mysql:

Travailler bien pour les formats de fichiers txt. EN DETAIL:

tbl name=t1 
feilds are= name varchar,email varchar; 

fichier text.txt < < == Ce fichier texte premiers noms de colonnes de table lignes:

name, email 
"n1", "e1" next line 
"n2", "e2" next line 
"n3", "e3" next line 
"n4", "e4" next line 
"n5", "e5" next line 
"n6", "e6" next line 
"n7", "e7" next line 

pls ignorer les déclarations de ligne suivante requête SQL dans WAMP

LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email) 

Pour cette exécution réussie, nous avons créé des dossiers séparément.

Réelle est

C: \ wamp \ mysql \ data \ wamp \ www \ touch \ text.txt < < == chemin du fichier est Physique.

Mais nous mentionnons c: /wamp/touch/text.txt