Ако получавате грешка, която гласи нещо като „ГРЕШКА 1136 (21S01):Броят на колоните не съвпада с броя на стойностите на ред 2 ”, когато използвате VALUES
изявление в MySQL, това вероятно е защото има несъответствие в броя на колоните, посочени в ROW()
клаузи.
За да коригирате тази грешка, уверете се, че всички ROW()
клаузите съдържат точно същия брой колони.
Пример за грешка
Ето пример за код, който ще доведе до грешката:
VALUES ROW(1, 2), ROW(3);
Резултат:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
В този случай предадох две стойности с първия ROW()
но само една стойност с втората.
Това е причината за грешката.
Решение
За да коригираме грешката, всичко, което трябва да направим, е да се уверим, че всички ROW()
клаузите съдържат еднакъв брой стойности.
Пример:
VALUES ROW(1, 2), ROW(3, 4);
Резултат:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Други причини за грешката
Същата грешка може да възникне и при използване на INSERT
оператор за вмъкване на грешен брой колони в таблица.
В такива случаи се уверете, че сте поставили правилния брой редове. Като алтернатива, за да вмъкнете данни в по-малко колони, отколкото съдържа таблицата, можете изрично да назовете колоните, за които да вмъкнете данни.