Als u merkt dat u een foutmelding krijgt met de volgende tekst:"ERROR 1136 (21S01):Kolomtelling komt niet overeen met waardetelling in rij ” in MariaDB, komt dit waarschijnlijk omdat u het verkeerde aantal uitdrukkingen hebt opgegeven voor het aantal kolommen in de kolom wanneer u probeert gegevens in een tabel in te voegen.
Met andere woorden, u probeert te veel of niet genoeg kolommen in te voegen.
Pas uw INSERT
. aan om dit op te lossen instructie om het juiste aantal waarden in de tabel in te voegen.
U kunt de kolommen ook een naam geven in uw INSERT
statement zodat MariaDB weet in welke kolommen elke expressie moet worden ingevoegd.
Voorbeeld van fout
Stel dat we de volgende tabel hebben:
+-------+---------+---------+ | PetId | PetName | PetType | +-------+---------+---------+ | 1 | Fluffy | Cat | | 2 | Tweet | Bird | +-------+---------+---------+
De volgende code zal de fout veroorzaken:
INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );
Resultaat:
ERROR 1136 (21S01): Column count doesn't match value count at row 1
In dit geval heb ik geprobeerd gegevens voor vier kolommen in te voegen in een tabel die slechts drie kolommen heeft.
We krijgen dezelfde foutmelding als we proberen te weinig kolommen in te voegen:
INSERT INTO Pets VALUES ( 3, 'Wag' );
Resultaat:
ERROR 1136 (21S01): Column count doesn't match value count at row 1
Oplossing 1
De voor de hand liggende oplossing is om het juiste aantal rijen in te voegen. Daarom zouden we onze code als volgt kunnen herschrijven:
INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog' );
Resultaat:
Query OK, 1 row affected (0.010 sec)
Oplossing 2
Een andere manier om dit te doen is om de kolommen waarvoor we gegevens willen invoegen expliciet een naam te geven. Deze techniek kan worden gebruikt om minder kolommen in te voegen dan in de tabel staan.
Voorbeeld:
INSERT INTO Pets ( PetId, PetName ) VALUES ( 3, 'Wag' );
Resultaat:
Query OK, 1 row affected (0.005 sec)
Deze methode kan resulteren in een andere fout als er beperkingen zijn waarvoor een waarde moet worden doorgegeven voor die kolom (bijvoorbeeld als de tabel een NOT NULL
heeft beperking op die kolom). Daarom moet u ervoor zorgen dat u zich houdt aan eventuele beperkingen in de kolom wanneer u dit doet.