sql >> Database teknologi >  >> RDS >> Mysql

Ret "FEJL 3942 (HY000):Hver række i en VALUES-klausul skal have mindst én kolonne", når du bruger VALUES-sætningen i MySQL

Hvis du får en fejlmeddelelse, der lyder "FEJL 3942 (HY000):Hver række i et VALUES-udtryk skal have mindst én kolonne ” i MySQL kan du have en tom rækkekonstruktør, når du bruger VALUES erklæring.

For at løse dette problem skal du sørge for, at du har mindst én værdi i hver ROW() klausul i VALUES erklæring.

Eksempel på fejlen

Her er et eksempel på kode, der resulterer i fejlen:

VALUES ROW();

Resultat:

ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.

Dette er et meget simpelt eksempel, men dets enkelhed viser os præcis, hvad der gik galt. Jeg bruger VALUES sætning, men med en tom ROW() klausul.

Løsning

For at løse problemet er det eneste, vi skal gøre, at angive mindst én værdi for ROW() klausul:

VALUES ROW('Jet');

Resultat:

+----------+
| column_0 |
+----------+
| Jet      |
+----------+

Normalt vil vi inkludere mere end én værdi i hver ROW() klausul og måske mere end én ROW() klausul. For eksempel:

VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');

Resultat:

+----------+----------+-----------+
| column_0 | column_1 | column_2  |
+----------+----------+-----------+
|        1 | Jet      | Black     |
|        2 | Faye     | Valentine |
+----------+----------+-----------+

Uanset hvad, skal vi give mindst én værdi til hver ROW() klausul.


  1. hvordan man opretter ISO-8601 gregoriansk datotabel i postgres

  2. Oracle Pivot-forespørgsel giver kolonner med anførselstegn omkring kolonnenavnene. Hvad?

  3. Sådan installeres og sikres MariaDB på CentOS 8

  4. 2018 i anmeldelse:7 MariaDB-milepæle, du måske er gået glip af