Se você receber um erro como "ERRO 1136 (21S01):a contagem de colunas não corresponde à contagem de valores na linha 2 ” ao usar os
VALUES
instrução no MySQL, provavelmente é porque há uma incompatibilidade no número de colunas especificadas no ROW()
cláusulas. Para corrigir este erro, certifique-se de que todos os
ROW()
cláusulas contêm exatamente o mesmo número de colunas. Exemplo de erro
Aqui está um exemplo de código que produzirá o erro:
VALUES ROW(1, 2), ROW(3);
Resultado:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
Nesse caso, passei dois valores com o primeiro
ROW()
mas apenas um valor com o segundo. Foi isso que causou o erro.
Solução
Para corrigir o erro, tudo o que precisamos fazer é garantir que todos os
ROW()
cláusulas contêm o mesmo número de valores. Exemplo:
VALUES ROW(1, 2), ROW(3, 4);
Resultado:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Outras causas do erro
O mesmo erro também pode ocorrer ao usar o
INSERT
instrução para inserir o número errado de colunas em uma tabela. Nesses casos, certifique-se de inserir o número correto de linhas. Como alternativa, para inserir dados em menos colunas do que a tabela contém, você pode nomear explicitamente as colunas para as quais deseja inserir dados.