Maison >base de données >tutoriel mysql >Comment corriger l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs » lors de l'insertion de données dans MySQL avec Bash ?
Solution de script Bash pour insérer des valeurs dans MySQL
Lorsqu'ils tentent d'insérer des valeurs dans MySQL à l'aide d'un script bash, les utilisateurs peuvent rencontrer une erreur indiquant une inadéquation entre le nombre de colonnes et le nombre de valeurs. Cette erreur se produit généralement lorsque le format des données d'entrée ne correspond pas aux colonnes attendues dans la table de base de données. Prenons l'exemple suivant :
Le script ci-dessous vise à insérer les valeurs d'un fichier texte dans une table MySQL nommée 'test' :
#!/bin/bash echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
Cependant, lors de l'exécution, le script renvoie une erreur :
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
Pour résoudre ce problème, vérifiez le format des données dans le fichier texte 'test.txt'. Si les données ne sont pas formatées correctement, cela entraînera un écart entre le nombre attendu de colonnes dans la table MySQL et les valeurs insérées.
Voici un script révisé qui adopte une approche différente :
#!/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;
Ce script parcourt chaque ligne du fichier texte et extrait les valeurs de chaque colonne (IP, MAC, SERVEUR). Il construit ensuite une instruction SQL pour chaque ligne et la transmet à la commande MySQL, garantissant que le nombre de colonnes et le nombre de valeurs correspondent.
En modifiant le script et en formatant correctement les données d'entrée dans le fichier texte, vous pouvez insérer avec succès des valeurs dans la table MySQL à l'aide d'un script bash.
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!