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.