Maison >base de données >tutoriel mysql >Comment puis-je importer efficacement des données CSV dans des tables MySQL tout en gérant le désalignement des données et les erreurs d'analyse ?

Comment puis-je importer efficacement des données CSV dans des tables MySQL tout en gérant le désalignement des données et les erreurs d'analyse ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 03:09:13556parcourir

How Can I Efficiently Import CSV Data into MySQL Tables While Handling Data Misalignment and Parsing Errors?

Importation de fichiers CSV dans des tables MySQL

Problème : Impossible de charger correctement les données d'un fichier CSV dans MySQL tableau, avec des problèmes tels que des éléments manquants ou mal alignés data.

Analyse :

L'approche originale utilisant LOAD DATA INFILE comportait des erreurs dues à une analyse incorrecte des présentations de texte s'étendant sur plusieurs lignes et à l'absence de spécifications de délimiteur appropriées.

Solution 1 (Utilisation de LOAD DATA INFILE):

Pour résoudre ces problèmes, l'instruction LOAD DATA INFILE a été modifiée pour inclure les paramètres suivants :

  • COLUMNS TERMINATED BY ',' : Spécifie le délimiteur de colonne sous forme de virgule.
  • OPTIONNELLEMENT ENCLOS PAR '"' : Indique que les champs de texte peuvent être entourées de guillemets doubles.
  • ESCAPED BY '"' : Spécifie que les guillemets doubles dans les champs de texte sont échappés.
  • LINES TERMINATED BY 'n' : Indique que les lignes se terminent par le caractère de nouvelle ligne .
  • IGNORE 1 LINES : ignore la première ligne du fichier CSV, qui contient généralement une colonne noms.

Cela a corrigé les problèmes d'analyse, mais les données étaient toujours mal alignées.

Solution 2 (utilisation de mysqlimport) :

A Une méthode plus efficace et plus fiable pour importer des fichiers CSV dans MySQL consiste à utiliser l'utilitaire mysqlimport. Il fournit des options supplémentaires pour spécifier le délimiteur et d'autres paramètres d'importation.

Pour utiliser mysqlimport :

  1. Créer une base de données et une table : Créez la base de données et la table dans dont vous souhaitez importer les données CSV.
  2. Utilisez la commande : Exécutez la commande suivante, remplacement de et avec vos noms de base de données et de table spécifiques :
mysqlimport --ignore-lines=1 \
            --fields-terminated-by=, \
            --local -u root \
            -p Database \
             TableName.csv
  • --ignore-lines=1 : ignore la première ligne du fichier CSV, qui contient généralement des noms de colonnes.
  • --fields-terminated-by=, : Spécifie le délimiteur de colonne sous la forme d'une virgule.
  • --local : Indique que le les données se trouvent sur l'hôte local.
  • -u root : Spécifie l'utilisateur MySQL (dans ce cas, "root").
  • -p : Demande le mot de passe MySQL.

Cette méthode offre un moyen plus précis et efficace d'importer des données CSV dans des tables MySQL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn