Mysql
 sql >> Base de données >  >> RDS >> Mysql

Correction de "ERROR 1136 (21S01):Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 2" lors de l'utilisation de l'instruction VALUES dans MySQL

Si vous obtenez une erreur qui lit quelque chose comme "ERREUR 1136 (21S01) :le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 2 ” lors de l'utilisation des VALUES déclaration dans MySQL, c'est probablement parce qu'il y a une incompatibilité dans le nombre de colonnes spécifiées dans le ROW() clauses.

Pour corriger cette erreur, assurez-vous que tous les éléments ROW() les clauses contiennent exactement le même nombre de colonnes.

Exemple d'erreur

Voici un exemple de code qui produira l'erreur :

VALUES ROW(1, 2), ROW(3);

Résultat :

ERROR 1136 (21S01): Column count doesn't match value count at row 2

Dans ce cas, j'ai passé deux valeurs avec le premier ROW() mais une seule valeur avec la seconde.

C'est ce qui a causé l'erreur.

Solution

Pour corriger l'erreur, tout ce que nous devons faire est de nous assurer que tous les éléments ROW() les clauses contiennent le même nombre de valeurs.

Exemple :

VALUES ROW(1, 2), ROW(3, 4);

Résultat :

+----------+----------+
| column_0 | column_1 |
+----------+----------+
|        1 |        2 |
|        3 |        4 |
+----------+----------+

Autres causes de l'erreur

La même erreur peut également se produire lors de l'utilisation de INSERT instruction pour insérer le mauvais nombre de colonnes dans une table.

Dans ce cas, assurez-vous d'insérer le nombre correct de lignes. Alternativement, pour insérer des données dans moins de colonnes que le tableau n'en contient, vous pouvez nommer explicitement les colonnes pour lesquelles insérer des données.