Mysql
 sql >> Database >  >> RDS >> Mysql

Correzione di "ERRORE 1136 (21S01):il conteggio delle colonne non corrisponde al conteggio dei valori alla riga 2" quando si utilizza l'istruzione VALUES in MySQL

Se ricevi un messaggio di errore simile a "ERRORE 1136 (21S01):il conteggio delle colonne non corrisponde al conteggio dei valori alla riga 2 ” quando si utilizza il VALUES istruzione in MySQL, è probabilmente perché c'è una mancata corrispondenza nel numero di colonne specificate in ROW() clausole.

Per correggere questo errore, assicurati che tutti ROW() le clausole contengono esattamente lo stesso numero di colonne.

Esempio di errore

Ecco un esempio di codice che produrrà l'errore:

VALUES ROW(1, 2), ROW(3);

Risultato:

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

In questo caso, ho passato due valori con il primo ROW() ma solo un valore con il secondo.

Questo è ciò che ha causato l'errore.

Soluzione

Per correggere l'errore, tutto ciò che dobbiamo fare è assicurarci che tutto ROW() le clausole contengono lo stesso numero di valori.

Esempio:

VALUES ROW(1, 2), ROW(3, 4);

Risultato:

+----------+----------+
| column_0 | column_1 |
+----------+----------+
|        1 |        2 |
|        3 |        4 |
+----------+----------+

Altre cause dell'errore

Lo stesso errore può verificarsi anche quando si utilizza INSERT istruzione per inserire il numero errato di colonne in una tabella.

In questi casi, assicurati di inserire il numero corretto di righe. In alternativa, per inserire dati in un numero di colonne inferiore a quello contenuto nella tabella, puoi nominare esplicitamente le colonne per cui inserire i dati.