Jeśli pojawia się błąd o treści „BŁĄD 1136 (21S01):liczba kolumn nie odpowiada liczbie wartości w wierszu 2 ” podczas korzystania z VALUES
w MySQL, jest to prawdopodobnie spowodowane niezgodnością liczby kolumn określonej w ROW()
klauzule.
Aby naprawić ten błąd, upewnij się, że wszystkie ROW()
klauzule zawierają dokładnie taką samą liczbę kolumn.
Przykład błędu
Oto przykład kodu, który spowoduje błąd:
VALUES ROW(1, 2), ROW(3);
Wynik:
ERROR 1136 (21S01): Column count doesn't match value count at row 2
W tym przypadku przekazałem dwie wartości za pomocą pierwszej ROW()
ale tylko jedna wartość z drugą.
To właśnie spowodowało błąd.
Rozwiązanie
Aby naprawić błąd, wszystko, co musimy zrobić, to upewnić się, że wszystkie ROW()
klauzule zawierają taką samą liczbę wartości.
Przykład:
VALUES ROW(1, 2), ROW(3, 4);
Wynik:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 1 | 2 | | 3 | 4 | +----------+----------+
Inne przyczyny błędu
Ten sam błąd może również wystąpić podczas korzystania z INSERT
oświadczenie, aby wstawić niewłaściwą liczbę kolumn do tabeli.
W takich przypadkach upewnij się, że wstawiasz prawidłową liczbę wierszy. Alternatywnie, aby wstawić dane do mniejszej liczby kolumn niż zawiera tabela, możesz jawnie nazwać kolumny, dla których chcesz wstawić dane.