Importation de fichiers CSV dans MySQL : se plonger dans LOAD DATA et mysqlimport
Le défi de l'importation d'un fichier CSV dans une table MySQL peut survenir lorsque traiter des données non normalisées et plusieurs colonnes. Pour résoudre ce problème, il est crucial de prendre en compte les nuances du processus d'importation.
L'approche LOAD DATA
LOAD DATA fournit une méthode simple pour importer des données à partir d'un fichier CSV. . Cependant, il est important de spécifier des paramètres supplémentaires pour garantir une gestion correcte des textes de présentation s'étendant sur plusieurs lignes. Voici un exemple qui résout les problèmes potentiels liés aux sauts de ligne :
LOAD DATA INFILE "/home/paul/clientdata.csv" INTO TABLE CSVImport COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
Cette déclaration révisée résout le problème potentiel en spécifiant les caractères de fin de ligne et en ignorant la première ligne pour les noms de colonnes.
L'utilitaire mysqlimport
Une autre option pour importer des fichiers CSV dans MySQL est mysqlimport, un outil de ligne de commande spécialement conçu pour ce but. Il offre un moyen puissant et efficace d'importer de grands ensembles de données :
mysqlimport --ignore-lines=1 \ --fields-terminated-by=, \ --local -u root \ -p Database \ TableName.csv
Dans cette commande, "--ignore-lines=1" ignore la première ligne du fichier CSV (contenant les noms de colonnes), "- -fields-terminated-by=", spécifie le délimiteur de champ sous la forme d'une virgule, "--local" garantit que l'importation a lieu sur la machine locale et "-u root -p" demande un mot de passe root avant de se connecter à la base de données.
Considérations supplémentaires
Pour personnaliser le délimiteur de champ, utilisez l'option "--fields-terminated-by='t'" pour les fichiers délimités par des tabulations. . De plus, si le fichier CSV contient des caractères spéciaux qui doivent être échappés, utilisez l'option "--lines-terminated-by='r'" pour les fins de ligne Windows et "--lines-terminated-by='n'" pour les lignes Unix. fins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!