sql >> Databasteknik >  >> RDS >> MariaDB

Fixa "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 1" när du infogar data i MariaDB

Om du upptäcker att du får ett felmeddelande som lyder något som "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning vid rad ” i MariaDB beror det förmodligen på att du har angett fel antal uttryck för antalet kolumner i kolumnen när du försökte infoga data i en tabell.

Med andra ord, du försöker infoga för många kolumner eller inte tillräckligt många kolumner.

För att fixa, justera din INSERT för att infoga rätt antal värden i tabellen.

Du kan också namnge kolumnerna i din INSERT uttalande så att MariaDB vet vilka kolumner varje uttryck behöver infogas i.

Exempel på fel

Anta att vi har följande tabell:

+-------+---------+---------+
| PetId | PetName | PetType |
+-------+---------+---------+
|     1 | Fluffy  | Cat     |
|     2 | Tweet   | Bird    |
+-------+---------+---------+

Följande kod kommer att orsaka felet:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );

Resultat:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

I det här fallet försökte jag infoga data för fyra kolumner i en tabell som bara har tre kolumner.

Vi får samma felmeddelande om vi försöker infoga för få kolumner:

INSERT INTO Pets VALUES ( 3, 'Wag' );

Resultat:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

Lösning 1

Den självklara lösningen är att infoga rätt antal rader. Därför kan vi skriva om vår kod enligt följande:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog' );

Resultat:

Query OK, 1 row affected (0.010 sec)

Lösning 2

Ett annat sätt att göra det är att uttryckligen namnge de kolumner som vi vill infoga data för. Denna teknik kan användas för att infoga färre kolumner än i tabellen.

Exempel:

INSERT INTO Pets ( PetId, PetName ) VALUES ( 3, 'Wag' );

Resultat:

Query OK, 1 row affected (0.005 sec)

Den här metoden kan resultera i ett annat fel om det finns några begränsningar som kräver att ett värde skickas för den kolumnen (till exempel om tabellen har en NOT NULL begränsning för den kolumnen). Därför måste du se till att du följer alla begränsningar i kolumnen när du gör detta.


  1. Hur använder man scheman i Django?

  2. Hur man ändrar malldatabassamlingens kodning

  3. Skillnaden mellan DELETE och TRUNCATE Tabell i SQL Server

  4. Lägg till en beräknad kolumn till en befintlig tabell i SQL Server