Maison > base de données > tutoriel mysql > Comment puis-je corriger l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs » lors de l'importation de données dans MySQL avec un script Bash ?

Comment puis-je corriger l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs » lors de l'importation de données dans MySQL avec un script Bash ?

Mary-Kate Olsen
Libérer: 2024-12-20 07:53:10
original
237 Les gens l'ont consulté

How Can I Fix a

Script Bash pour insérer des valeurs dans MySQL, dépannage de l'erreur de nombre de colonnes

Dans cet article, nous aborderons le sujet de la création d'un bash script qui interagit de manière transparente avec un serveur MySQL et importe des données à partir d'un fichier texte. Nous explorerons une erreur courante rencontrée au cours de ce processus et fournirons une solution pour garantir une insertion réussie des données.

Analyse des erreurs :

L'une des erreurs les plus courantes lors de l'importation de données à partir d'un fichier texte vers MySQL à l'aide d'un script bash est l'erreur "Le nombre de colonnes ne correspond pas au nombre de valeurs". Cette erreur se produit généralement lorsque le nombre de valeurs que vous essayez d'insérer ne correspond pas au nombre de colonnes définies dans la table cible.

Exemple de scénario :

Considérez le script bash suivant :

#!/bin/bash
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
Copier après la connexion

Ce script tente d'importer des données d'un fichier texte nommé "test.txt" dans une table nommée "test" avec les colonnes "IP", "MAC" et "SERVER". Cependant, si le fichier texte ne contient pas de valeurs pour les trois colonnes, le script échouera avec l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs ».

Solution :

Pour résoudre cette erreur, nous devons nous assurer que le fichier texte contient le nombre correct de valeurs pour chaque ligne. De plus, nous pouvons modifier le script bash pour lire les données du fichier texte ligne par ligne et exécuter des instructions d'insertion distinctes pour chaque ligne. Cela garantit que le nombre de valeurs correspond au nombre de colonnes.

Script mis à jour :

#!/bin/bash
inputfile="test.txt"
cat $inputfile | while read ip mac server; do
    echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');"
done | mysql -uroot -ptest test;
Copier après la connexion

Ce script mis à jour lit les données du "test.txt" fichier en utilisant cat et le dirige dans la boucle while. La boucle parcourt chaque ligne, extrait les valeurs IP, MAC et SERVER et construit une instruction d'insertion pour chaque ligne. Les instructions d'insertion séparées sont ensuite exécutées à l'aide de la commande mysql, garantissant que le nombre de valeurs correspond au nombre de colonnes dans le tableau.

En suivant ces étapes, vous pouvez importer efficacement les données d'un fichier texte dans MySQL en utilisant un script bash tout en évitant l'erreur "Le nombre de colonnes ne correspond pas au nombre de valeurs".

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal