Heim >Datenbank >MySQL-Tutorial >Wie behebt man den Fehler „Spaltenanzahl stimmt nicht mit Wertanzahl überein' beim Einfügen von Daten in MySQL mit Bash?

Wie behebt man den Fehler „Spaltenanzahl stimmt nicht mit Wertanzahl überein' beim Einfügen von Daten in MySQL mit Bash?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 08:23:10972Durchsuche

How to Fix

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn