Comment importer un fichier csv dans MySQL Workbench?


88

J'ai un fichier CSV. Il contient 1,4 million de lignes de données, je ne suis donc pas en mesure d'ouvrir ce fichier csv dans Excel car sa limite est d'environ 1 million de lignes.

Par conséquent, je souhaite importer ce fichier dans MySQL workbench. Ce fichier csv contient des colonnes comme

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"

J'essaye de créer une table dans MySQL workbench nommée comme "factice" contenant des colonnes comme

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

Le fichier CSV est nommé model.csv. Mon code dans Workbench est comme ceci:

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';

mais j'obtiens une erreur comme model.CSV file not found


Vous pouvez également le faire dans l' assistant d'importation de dbForge Studio pour MySQL . Il génère automatiquement une table de cette manière prnt.sc/e5iqy1
Devart

Réponses:


139

Je suppose que vous manquez la clause ENCLOSED BY

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';

Et spécifiez le chemin complet du fichier csv

Charger un fichier de données - Documentation MySQL


1
merci, je n'obtiens aucune erreur dans cette commande, mais je reçois une erreur comme le fichier model.csv introuvable. ce fichier est stocké sur le bureau de mon système
vps

Le fichier csv est stocké sur le bureau de mon système
vps

5
MISE À JOUR: Si vous importez des chaînes avec des caractères non standard, il est utile de signaler la nécessité de "CHARACTER SET utf8" dans l'instruction: LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE nom_base.nom_table CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' lignes terminées par '\ n'; La table / colonnes cible doit également être définie sur utf-8
ılǝ

1
il ne faut pas non plus oublier le mot clé LOCAL, votre requête est juste
Brij Raj Singh - MSFT

2
A travaillé "en quelque sorte" sur Windows 7 en utilisant mysql workbench 6.2. J'ai dû utiliser des doubles barres obliques '//path//to//your//csv//file//model.csv'et tous les champs contenant des barres obliques simples se sont cassés.
576i

69

Dans le cas où vous avez un ensemble de données plus petit, un moyen d'y parvenir par GUI est:

  1. Ouvrez une fenêtre de requête
  2. SELECT * FROM [nom_table]
  3. Sélectionnez Importer dans la barre de menus
  4. Appuyez sur Appliquer en bas à droite sous la grille de résultats

entrez la description de l'image ici

Référence: http://www.youtube.com/watch?v=tnhJa_zYNVY


13
Juste une note. Cette option d'importation n'est disponible que sur les machines Windows. Les plugins sont apparemment toujours basés sur .Net et ne fonctionnent donc pas sous Linux ou Mac.
BrianC

8
N'oubliez pas d'appuyer sur Appliquer après l'importation.
Steve Pitchers

7
Attention, cela peut être très lent. Il a fallu quelques heures pour faire 25000 lignes
Rob Sedgwick

2
La durée semble être très dépendante du matériel. Mon ordinateur personnel s'est complètement étouffé sur 10K lignes. Mon ordinateur de travail vient d'importer 243K lignes avec environ 200 colonnes en 85 secondes.
KathyA.

2
@BrianC Cela ne semble plus être le cas, cela m'apparaît sur la version Linux.
Jammerx2

21

Dans le navigateur sous SCHEMAS, faites un clic droit sur votre schéma / base de données et sélectionnez "Assistant d'importation de données de table"

Fonctionne aussi pour Mac.


Cela a fonctionné pour moi sur Ubuntu 18.04 lors de la création d'une nouvelle table à partir du csv. Cependant, je n'ai pas pu ajouter de données à une table existante en utilisant cette méthode.
LP Whigley du

2

Vous pouvez utiliser l' assistant d'importation de données de table MySQL


Merci :) cela a résolu mon problème. nous pouvons changer le nom de la colonne plus tard à partir de l'interface utilisateur (pas pour les experts), une fois qu'il est importé ...
vipul kumawat

essayé beaucoup de choses qui n'ont pas fonctionné mais cela a finalement fonctionné. cela fonctionnait même sans modifier les paramètres de fichier de données locaux. Je suppose que MySQL exécute des insertions à la place.
Peppershaker

1

Pour le moment, il n'est pas possible d'importer un CSV (en utilisant MySQL Workbench) sur toutes les plates-formes, ni n'est conseillé si ledit fichier ne réside pas dans le même hôte que l'hôte du serveur MySQL.

Cependant, vous pouvez utiliser mysqlimport .

Exemple:

mysqlimport --local --compress --user=username --password --host=hostname \
--fields-terminated-by=',' Acme sales.part_*

Dans cet exemple mysqlimport est demandé de charger tous les fichiers nommés "ventes" avec une extension commençant par "part_". C'est un moyen pratique de charger tous les fichiers créés dans l'exemple «fractionné». Utilisez l'option --compress pour minimiser le trafic réseau. L'option --fields-terminated-by = ',' est utilisée pour les fichiers CSV et l'option --local spécifie que les données entrantes se trouvent sur le client. Sans l'option --local, MySQL recherchera les données sur l'hôte de la base de données, spécifiez donc toujours l'option --local.

Il existe des informations utiles sur le sujet dans la documentation AWS RDS .


0

Si le serveur réside sur une machine distante, assurez-vous que le fichier se trouve sur la machine distante et non sur votre machine locale.

Si le fichier se trouve sur la même machine que le serveur mysql, assurez-vous que l'utilisateur mysql a les autorisations pour lire / écrire le fichier, ou copiez le fichier dans le répertoire du schéma mysql:

Dans mon cas dans ubuntu, c'était: /var/lib/mysql/db_myschema/myfile.csv

En outre, sans rapport avec ce problème, mais si vous rencontrez des problèmes avec les nouvelles lignes, utilisez sublimeTEXT pour modifier les fins de ligne au format WINDOWS, enregistrez le fichier et réessayez.


0

Cela semble un peu délicat car cela me dérangeait vraiment depuis longtemps.

Il vous suffit d'ouvrir le tableau (cliquez avec le bouton droit de la souris sur "Select Rows- Limit 10000") et vous ouvrirez une nouvelle fenêtre. Dans cette nouvelle fenêtre, vous trouverez "l'icône d'importation".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.