Wenn Sie eine Fehlermeldung wie „ERROR 1136 (21S01):Column count does not match value count at row 2 ” bei Verwendung der VALUES
-Anweisung in MySQL, liegt dies wahrscheinlich daran, dass die Anzahl der in ROW()
angegebenen Spalten nicht übereinstimmt Klauseln.
Um diesen Fehler zu beheben, stellen Sie sicher, dass alle ROW()
Klauseln enthalten genau die gleiche Anzahl von Spalten.
Fehlerbeispiel
Hier ist ein Codebeispiel, das den Fehler erzeugt:
VALUES ROW(1, 2), ROW(3);
Ergebnis:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
In diesem Fall habe ich mit dem ersten ROW()
zwei Werte übergeben aber nur ein Wert mit dem zweiten.
Das hat den Fehler verursacht.
Lösung
Um den Fehler zu beheben, müssen wir lediglich sicherstellen, dass alle ROW()
Klauseln enthalten die gleiche Anzahl von Werten.
Beispiel:
VALUES ROW(1, 2), ROW(3, 4);
Ergebnis:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Andere Fehlerursachen
Derselbe Fehler kann auch bei Verwendung von INSERT
auftreten Anweisung, die falsche Anzahl von Spalten in eine Tabelle einzufügen.
Stellen Sie in solchen Fällen sicher, dass Sie die richtige Anzahl von Zeilen einfügen. Um Daten in weniger Spalten einzufügen, als die Tabelle enthält, können Sie die Spalten, für die Daten eingefügt werden sollen, explizit benennen.