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

Correzione di "ERRORE 3942 (HY000):ogni riga di una clausola VALUES deve avere almeno una colonna" quando si utilizza l'istruzione VALUES in MySQL

Se ricevi un errore che dice "ERROR 3942 (HY000):ogni riga di una clausola VALUES deve avere almeno una colonna ” in MySQL, potresti avere un costruttore di righe vuoto quando usi VALUES dichiarazione.

Per risolvere questo problema, assicurati di avere almeno un valore in ogni ROW() clausola all'interno di VALUES dichiarazione.

Esempio di errore

Ecco un esempio di codice che genera l'errore:

VALUES ROW();

Risultato:

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

Questo è un esempio molto semplice, ma la sua semplicità ci mostra esattamente cosa è andato storto. Sto usando i VALUES istruzione, ma con un ROW() vuoto clausola.

Soluzione

Per risolvere il problema, tutto ciò che dobbiamo fare è fornire almeno un valore per ROW() clausola:

VALUES ROW('Jet');

Risultato:

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

Di solito, includeremmo più di un valore in ogni ROW() clausola, e forse più di una ROW() clausola. Ad esempio:

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

Risultato:

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

In ogni caso, dobbiamo fornire almeno un valore per ogni ROW() clausola.