sql >> Databáze >  >> RDS >> Mysql

Oprava „ERROR 1136 (21S01):Počet sloupců neodpovídá počtu hodnot na řádku 2“ při použití příkazu VALUES v MySQL

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.


  1. Instalace Microsoft SQL Server 2012 Enterprise Edition s aktualizací Service Pack 1

  2. 3 způsoby, jak najít řádky, které obsahují velká písmena v SQLite

  3. Jak na serveru SQL Server najdu všude, kde se odkazuje na sloupec?

  4. Propojené servery Salesforce.com a sp_columns_ex