Als u een foutmelding krijgt met de tekst 'ERROR 1136 (21S01):Kolomtelling komt niet overeen met waardetelling in rij 2 ” bij gebruik van de VALUES
statement in MySQL, komt dit waarschijnlijk omdat er een mismatch is in het aantal kolommen dat is opgegeven in de ROW()
clausules.
Om deze fout op te lossen, moet u ervoor zorgen dat alle ROW()
clausules bevatten exact hetzelfde aantal kolommen.
Voorbeeld van fout
Hier is een voorbeeld van code die de fout zal produceren:
VALUES ROW(1, 2), ROW(3);
Resultaat:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
In dit geval heb ik twee waarden doorgegeven met de eerste ROW()
maar slechts één waarde met de tweede.
Dat is de oorzaak van de fout.
Oplossing
Om de fout te herstellen, hoeven we alleen maar te zorgen dat alle ROW()
clausules bevatten hetzelfde aantal waarden.
Voorbeeld:
VALUES ROW(1, 2), ROW(3, 4);
Resultaat:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Andere oorzaken van de fout
Dezelfde fout kan ook optreden bij het gebruik van de INSERT
instructie om het verkeerde aantal kolommen in een tabel in te voegen.
Zorg er in dergelijke gevallen voor dat u het juiste aantal rijen invoert. Als u gegevens in minder kolommen wilt invoegen dan de tabel bevat, kunt u de kolommen waarvoor u gegevens wilt invoegen expliciet een naam geven.