Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Correção “ERRO 3942 (HY000):Cada linha de uma cláusula VALUES deve ter pelo menos uma coluna” ao usar a instrução VALUES no MySQL


Se você estiver recebendo um erro que diz “ERRO 3942 (HY000):Cada linha de uma cláusula VALUES deve ter pelo menos uma coluna ” no MySQL, você pode ter um construtor de linha vazio ao usar o VALUES demonstração.

Para corrigir esse problema, verifique se você tem pelo menos um valor em cada ROW() cláusula dentro do VALUES demonstração.

Exemplo do erro


Aqui está um exemplo de código que resulta no erro:
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 é um exemplo muito simples, mas sua simplicidade nos mostra exatamente o que deu errado. Estou usando os VALUES instrução, mas com um ROW() vazio cláusula.

Solução


Para corrigir o problema, tudo o que precisamos fazer é fornecer pelo menos um valor para o ROW() cláusula:
VALUES ROW('Jet');

Resultado:
+----------+
| column_0 |
+----------+
| Jet      |
+----------+

Normalmente, incluiríamos mais de um valor em cada ROW() cláusula e talvez mais de um ROW() cláusula. Por exemplo:
VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');

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

De qualquer forma, precisamos fornecer pelo menos um valor para cada ROW() cláusula.