Wenn Sie eine Fehlermeldung erhalten, die lautet:„ERROR 3942 (HY000):Jede Zeile einer VALUES-Klausel muss mindestens eine Spalte haben ” in MySQL könnten Sie einen leeren Zeilenkonstruktor haben, wenn Sie VALUES
verwenden Aussage.
Stellen Sie zur Behebung dieses Problems sicher, dass in jeder ROW()
mindestens ein Wert vorhanden ist -Klausel innerhalb der VALUES
Aussage.
Beispiel für den Fehler
Hier ist ein Codebeispiel, das zu dem Fehler führt:
VALUES ROW();
Ergebnis:
ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.
Dies ist ein sehr einfaches Beispiel, aber seine Einfachheit zeigt uns genau, was schief gelaufen ist. Ich verwende die VALUES
-Anweisung, aber mit einem leeren ROW()
Klausel.
Lösung
Um das Problem zu beheben, müssen wir lediglich mindestens einen Wert für ROW()
bereitstellen Klausel:
VALUES ROW('Jet');
Ergebnis:
+----------+ | column_0 | +----------+ | Jet | +----------+
Normalerweise würden wir mehr als einen Wert in jede ROW()
einfügen -Klausel und vielleicht mehr als eine ROW()
Klausel. Zum Beispiel:
VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');
Ergebnis:
+----------+----------+-----------+ | column_0 | column_1 | column_2 | +----------+----------+-----------+ | 1 | Jet | Black | | 2 | Faye | Valentine | +----------+----------+-----------+
In jedem Fall müssen wir jedem ROW()
mindestens einen Wert zuweisen Klausel.