Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Behebung von „ERROR 3942 (HY000):Jede Zeile einer VALUES-Klausel muss mindestens eine Spalte haben“, wenn die VALUES-Anweisung in MySQL verwendet wird

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.