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.