Heim >Datenbank >MySQL-Tutorial >Wie behebt man den Fehler „Spaltenanzahl stimmt nicht mit Wertanzahl überein' beim Einfügen von Daten in MySQL mit Bash?
Bash-Skriptlösung zum Einfügen von Werten in MySQL
Beim Versuch, Werte mithilfe eines Bash-Skripts in MySQL einzufügen, kann es sein, dass Benutzer auf eine Fehlermeldung stoßen eine Diskrepanz zwischen Spaltenanzahl und Wertanzahl. Dieser Fehler tritt normalerweise auf, wenn das Eingabedatenformat nicht mit den erwarteten Spalten in der Datenbanktabelle übereinstimmt. Betrachten Sie das folgende Beispiel:
Das folgende Skript zielt darauf ab, Werte aus einer Textdatei in eine MySQL-Tabelle mit dem Namen „test“ einzufügen:
#!/bin/bash echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
Bei der Ausführung gibt das Skript jedoch einen Fehler zurück :
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
Um dieses Problem zu beheben, überprüfen Sie das Datenformat in der Textdatei „test.txt“. Wenn die Daten nicht korrekt formatiert sind, führt dies zu einer Diskrepanz zwischen der erwarteten Anzahl von Spalten in der MySQL-Tabelle und den eingefügten Werten.
Hier ist ein überarbeitetes Skript, das einen anderen Ansatz verfolgt:
#!/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;
Dieses Skript durchläuft jede Zeile in der Textdatei und extrahiert die Werte für jede Spalte (IP, MAC, SERVER). Anschließend erstellt es eine SQL-Anweisung für jede Zeile und leitet sie an den MySQL-Befehl weiter, um sicherzustellen, dass die Spaltenanzahl und die Werteanzahl übereinstimmen.
Durch Ändern des Skripts und ordnungsgemäßes Formatieren der Eingabedaten in der Textdatei können Sie dies erreichen Mit einem Bash-Skript erfolgreich Werte in die MySQL-Tabelle einfügen.
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Spaltenanzahl stimmt nicht mit Wertanzahl überein' beim Einfügen von Daten in MySQL mit Bash?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!