sql >> Databáze >  >> RDS >> Mysql

Oprava „ERROR 3942 (HY000):Každý řádek klauzule VALUES musí mít alespoň jeden sloupec“ při použití příkazu VALUES v MySQL

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.


  1. Převod mezi datovými typy data a času na serveru SQL (příklady T-SQL)

  2. Volání uložené procedury Oracle s výstupním parametrem ze serveru SQL

  3. Poslechněte si epizodu 2 podcastu Microsoft Access

  4. Export dat v SQL Server jako INSERT INTO