Dans ce scénario, vous rencontrez une erreur en essayant d'importer un fichier XML dans une table de base de données MySQL à l'aide la commande CHARGER XML. Le problème est dû à une inadéquation entre le nombre de champs de la table et les valeurs du fichier XML, la table ayant un champ d'identification à incrémentation automatique supplémentaire.
Pour résoudre cette erreur, vous pouvez spécifier le champs à importer explicitement à l'aide de l'instruction LOAD XML. L'instruction SQL suivante accomplira cela :
<code class="sql">LOAD XML LOCAL INFILE '/pathtofile/file.xml' INTO TABLE my_tablename(personal_number, firstname, lastname, email, start_time, end_time, employee_category);</code>
En spécifiant les noms de champs, vous demandez à MySQL d'ignorer le champ d'identification manquant pendant le processus d'importation. Le champ id sera automatiquement renseigné avec des valeurs incrémentielles basées sur les paramètres d'incrémentation automatique de la table.
Méthode alternative avec mappage de colonnes
Si vous le souhaitez, vous pouvez également utiliser le Fonction XML_LOAD() pour importer des données XML dans MySQL. Cette fonction offre plus de flexibilité et permet un mappage de colonnes explicite :
<code class="sql">SET @xmlData = XML('<resultset statement="...">...</resultset>'); SELECT XML_LOAD(@xmlData, '/resultset/row', '(personal_number, firstname, lastname, email, start_time, end_time, employee_category)' INTO TABLE my_tablename);</code>
Dans ce cas, la fonction XML_LOAD() analyse les données XML et remplit la table my_tablename en fonction du mappage de colonnes spécifié dans la clause INTO TABLE. .
En utilisant l'une ou l'autre de ces méthodes, vous pouvez importer avec succès des données XML dans votre table de base de données MySQL, en ignorant le champ d'identification manquant et en vous appuyant sur la fonction d'incrémentation automatique pour générer des identifiants uniques pour chaque ligne.
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!