Jeśli otrzymujesz błąd, który brzmi „BŁĄD 3942 (HY000):Każdy wiersz klauzuli VALUES musi mieć co najmniej jedną kolumnę ” w MySQL możesz mieć konstruktor pustego wiersza podczas korzystania z VALUES
oświadczenie.
Aby rozwiązać ten problem, upewnij się, że masz co najmniej jedną wartość w każdym ROW()
klauzula w VALUES
oświadczenie.
Przykład błędu
Oto przykład kodu, który powoduje błąd:
VALUES ROW();
Wynik:
ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.
To bardzo prosty przykład, ale jego prostota pokazuje nam dokładnie, co poszło nie tak. Używam VALUES
instrukcja, ale z pustą ROW()
klauzula.
Rozwiązanie
Aby rozwiązać ten problem, wystarczy podać co najmniej jedną wartość dla ROW()
klauzula:
VALUES ROW('Jet');
Wynik:
+----------+ | column_0 | +----------+ | Jet | +----------+
Zwykle do każdego ROW()
należy dodać więcej niż jedną wartość klauzula i być może więcej niż jeden ROW()
klauzula. Na przykład:
VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');
Wynik:
+----------+----------+-----------+ | column_0 | column_1 | column_2 | +----------+----------+-----------+ | 1 | Jet | Black | | 2 | Faye | Valentine | +----------+----------+-----------+
Tak czy inaczej, musimy podać co najmniej jedną wartość do każdego ROW()
klauzula.