web-dev-qa-db-fra.com

Comment importer un fichier csv dans MySQL Workbench?

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

Par conséquent, je veux importer ce fichier dans MySQL Workbench. Ce fichier CSV contient des colonnes telles que

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

J'essaie de créer dans MySQL un tableau intitulé "fictif" contenant des colonnes telles que

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

Le fichier CSV s'appelle 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 je reçois une erreur comme model.CSV file not found

82
vps

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

Load Data Infile - Documentation MySQL

130
Packet Tracer

Dans le cas où vous avez un ensemble de données plus petit, un moyen de le réaliser par une interface graphique est:

  1. Ouvrir 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.

enter image description here

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

65
GabrielC

Dans le navigateur sous SCHEMAS, cliquez avec le bouton droit sur votre schéma/base de données et sélectionnez "Assistant d'importation de données de table".

Fonctionne pour mac aussi.

14
DannyPadilla

Pour le moment, il n'est pas possible d'importer un fichier CSV (avec MySQL Workbench) sur toutes les plates-formes, ni 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 doit charger tous les fichiers nommés "sales" 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 réduire le trafic réseau. L'option --fields-terminated-by = ',' est utilisée pour les fichiers CSV et l'option --local indique que les données entrantes se trouvent sur le client. Sans l'option --local, MySQL recherchera les données sur la base de données Host. Par conséquent, spécifiez toujours l'option --local.

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

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

Si le fichier se trouve sur le même ordinateur que le serveur mysql, assurez-vous que l'utilisateur mysql dispose des autorisations nécessaires pour lire/écrire le fichier, ou copiez le fichier dans le répertoire du schéma mysql:

Dans mon cas à Ubuntu, il s’agissait de /var/lib/mysql/db_myschema/myfile.csv.

De plus, ce n’est pas relatif à 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, puis réessayez.

0
Eduardo Chongkan

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

Vous devez simplement ouvrir le tableau (cliquez avec le bouton droit de la souris sur "Sélectionner les lignes - Limite 10000") et vous ouvrirez une nouvelle fenêtre. Dans cette nouvelle fenêtre, vous trouverez "l'icône d'importation".

0
Chen
0
Shyju Madathil