Maison  >  Article  >  base de données  >  Comment importer un fichier XML dans une table MySQL lorsque le nombre de colonnes ne correspond pas ?

Comment importer un fichier XML dans une table MySQL lorsque le nombre de colonnes ne correspond pas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 01:54:28674parcourir

How to Import an XML File into a MySQL Table When Column Counts Don't Match?

Importation de fichiers XML dans des tables MySQL avec la fonction XML_LOAD()

Problème :

Importation d'un fichier XML dans MySQL table avec des nombres de colonnes incompatibles, ce qui entraîne une erreur : "Le nombre de colonnes ne correspond pas au nombre de valeurs."

Cause :

Le fichier XML ne contient pas une valeur de colonne qui correspond à la colonne id de la table de la base de données, qui possède une propriété d'auto-incrémentation.

Solution :

En excluant la colonne id lors de l'import, vous pouvez compter sur la fonction d'auto-incrémentation de MySQL pour le remplir. Pour ce faire, spécifiez les colonnes que vous souhaitez importer dans l'instruction LOAD XML, en omettant la colonne id.

Syntaxe :

LOAD XML LOCAL INFILE '/pathtofile/file.xml' INTO TABLE my_tablename(personal_number, firstname, ...);

Exemple :

Dans votre cas, l'instruction suivante importera le fichier XML dans la table my_tablename, à l'exclusion de la colonne id :

LOAD XML LOCAL INFILE '/pathtofile/file.xml' INTO TABLE my_tablename(personal_number, firstname, lastname, email, start_time, end_time, employee_category);

Gestion plus intelligente des importations XML :

Comme alternative à la fonction LOAD XML, vous pouvez envisager d'utiliser l'utilitaire XML to MySQL fourni par MariaDB. Il offre plusieurs avantages, notamment :

  • Personnalisation du mappage de colonnes
  • Gestion et validation des erreurs
  • Prise en charge des schémas XSD

Installation et utilisation :

  1. Installez le package xml2mysql pour MariaDB :
sudo apt-get install mariadb-server-xml2mysql
  1. Importez le fichier XML à l'aide de la commande suivante :
mysql -u username -p password database_name < /pathtofile/file.xml

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