sql >> Database teknologi >  >> RDS >> Mysql

Ret "FEJL 1136 (21S01):Kolonneantal stemmer ikke overens med værdiantallet i række 2", når du bruger VALUES Statement i MySQL

Hvis du får en fejl, der lyder noget som "FEJL 1136 (21S01):Kolonneantal stemmer ikke overens med værdiantallet i række 2 ” når du bruger VALUES sætning i MySQL, er det sandsynligvis fordi der er et misforhold i antallet af kolonner angivet i ROW() klausuler.

For at rette denne fejl skal du sørge for, at alle ROW() klausuler indeholder nøjagtigt det samme antal kolonner.

Eksempel på fejl

Her er et eksempel på kode, der vil producere fejlen:

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

Resultat:

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

I dette tilfælde sendte jeg to værdier med den første ROW() men kun én værdi med den anden.

Det er det, der forårsagede fejlen.

Løsning

For at rette fejlen er det eneste, vi skal gøre, at sikre, at alle ROW() klausuler indeholder det samme antal værdier.

Eksempel:

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

Resultat:

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

Andre årsager til fejlen

Den samme fejl kan også opstå, når du bruger INSERT sætning for at indsætte det forkerte antal kolonner i en tabel.

I sådanne tilfælde skal du sørge for at indsætte det korrekte antal rækker. Alternativt, for at indsætte data i færre kolonner, end tabellen indeholder, kan du udtrykkeligt navngive de kolonner, som du vil indsætte data for.


  1. Sådan fungerer SQLite Sum()

  2. MySQL IN-operatørens ydeevne på (stort?) antal værdier

  3. Sådan importeres XML-fil i Oracle SQL Developer?

  4. Sådan tilføjer du standardbegrænsning til eksisterende kolonner i SQL Server-tabel - SQL Server / TSQL selvstudium, del 91