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

Correção "ERRO 1136 (21S01):a contagem de colunas não corresponde à contagem de valores na linha 2" ao usar a instrução VALUES no MySQL


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.