sql >> Database >  >> RDS >> Mysql

Fix "ERROR 1136 (21S01):Kolomtelling komt niet overeen met waardetelling in rij 2" bij gebruik van de VALUES-instructie in MySQL

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.


  1. IN vs OR van Oracle, welke sneller?

  2. SQL LIKE en IN samen gebruiken

  3. DevOps:DBA of Developer – De juiste balans vinden

  4. Voeg een procentteken toe aan een getal in MariaDB