Pokud se vám zobrazuje chyba, která zní něco jako „CHYBA 1136 (21S01):Počet sloupců neodpovídá počtu hodnot na řádku 2 ” při použití VALUES
v MySQL, je to pravděpodobně proto, že existuje neshoda v počtu sloupců zadaných v ROW()
klauzule.
Chcete-li tuto chybu opravit, ujistěte se, že všechny ROW()
klauzule obsahují přesně stejný počet sloupců.
Příklad chyby
Zde je příklad kódu, který způsobí chybu:
VALUES ROW(1, 2), ROW(3);
Výsledek:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
V tomto případě jsem předal dvě hodnoty s první ROW()
ale pouze jedna hodnota s druhou.
To způsobilo chybu.
Řešení
Abychom chybu opravili, vše, co musíme udělat, je zajistit, aby byly všechny ROW()
klauzule obsahují stejný počet hodnot.
Příklad:
VALUES ROW(1, 2), ROW(3, 4);
Výsledek:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Další příčiny chyby
Ke stejné chybě může dojít také při použití INSERT
příkaz k vložení nesprávného počtu sloupců do tabulky.
V takových případech se ujistěte, že jste vložili správný počet řádků. Alternativně, chcete-li vložit data do méně sloupců, než obsahuje tabulka, můžete explicitně pojmenovat sloupce, pro které chcete vložit data.