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.