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.