Pokud se vám zobrazuje chyba „ERROR 3942 (HY000):Každý řádek klauzule VALUES musí mít alespoň jeden sloupec ” v MySQL můžete mít při použití VALUES
prázdný konstruktor řádku prohlášení.
Chcete-li tento problém vyřešit, ujistěte se, že máte v každém ROW()
alespoň jednu hodnotu klauzule v rámci VALUES
prohlášení.
Příklad chyby
Zde je příklad kódu, který vede k chybě:
VALUES ROW();
Výsledek:
ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.
Toto je velmi jednoduchý příklad, ale jeho jednoduchost nám přesně ukazuje, co se pokazilo. Používám VALUES
příkaz, ale s prázdným ROW()
doložka.
Řešení
Chcete-li problém vyřešit, vše, co musíme udělat, je zadat alespoň jednu hodnotu pro ROW()
klauzule:
VALUES ROW('Jet');
Výsledek:
+----------+ | column_0 | +----------+ | Jet | +----------+
Obvykle bychom do každého ROW()
zahrnuli více než jednu hodnotu klauzule a možná více než jeden ROW()
doložka. Například:
VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');
Výsledek:
+----------+----------+-----------+ | column_0 | column_1 | column_2 | +----------+----------+-----------+ | 1 | Jet | Black | | 2 | Faye | Valentine | +----------+----------+-----------+
V každém případě musíme pro každý ROW()
zadat alespoň jednu hodnotu doložka.