sql >> Base de Datos >  >> RDS >> Mysql

Arreglar "ERROR 3942 (HY000):Cada fila de una cláusula VALUES debe tener al menos una columna" cuando se usa la declaración VALUES en MySQL

Si recibe un error que dice "ERROR 3942 (HY000):cada fila de una cláusula VALUES debe tener al menos una columna ” en MySQL, podría tener un constructor de fila vacío al usar VALUES declaración.

Para solucionar este problema, asegúrese de tener al menos un valor en cada ROW() cláusula dentro de VALUES declaración.

Ejemplo del Error

Este es un ejemplo de código que genera el error:

VALUES ROW();

Resultado:

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

Este es un ejemplo muy simple, pero su simplicidad nos muestra exactamente lo que salió mal. Estoy usando VALUES instrucción, pero con un ROW() vacío cláusula.

Solución

Para solucionar el problema, todo lo que tenemos que hacer es proporcionar al menos un valor para ROW() cláusula:

VALUES ROW('Jet');

Resultado:

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

Por lo general, incluiríamos más de un valor en cada ROW() cláusula, y quizás más de una ROW() cláusula. Por ejemplo:

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

Resultado:

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

De cualquier manera, debemos proporcionar al menos un valor para cada ROW() cláusula.