2012-10-24 18 views
12

Ho un file mysql con oltre 14000 istruzioni. Tutti loro sono inserti in una tabella, e quando ho importare il file utilizzando console, getta il seguente errore:"Il conteggio delle colonne non corrisponde al conteggio dei valori alla riga" ma lo è

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

so che errore viene visualizzato quando le righe di cui i nomi delle colonne sono diversi dai file specificati nella lista VALORI, ma l'ho verificato molte volte e il numero di colonne è esattamente lo stesso in entrambi gli elenchi.

La riga in posizione 45 è:

('00553', 'AAA', 'BBB', 'CCC', 'XXXXXXXXR', 'user address', 'spain', 'spain', '39212', '1900-01-21', '123456789', 'M', 'No disponible', 0, 'AAA', 'BBB ', 'CCC', 'XXXXXXXXR', NULL, '888993344', '', '', '', '', 'no', 'no') --> 26 columns 

e la linea inserto ad esso associati, molte linee di cui sopra è:

INSERT INTO `users` (`id_patient`, `name`, `surname1`, `surname2`, `dni`, `address`, `city`, `state`, `postal_code`, `birthday`, `telephone`, `sex`, `email`, `lopd_status`, `lopd_name`, `lopd_surname1`, `lopd_surname2`, `lopd_dni`, `lopd_as`, `mobile_phone`, `notes`, `job`, `company`, `place`, `active_citation`, `signature`) --> 26 columns 

Ho cercato questo errore ma sembra solo appare quando il conteggio è diverso, ma in questo caso è lo stesso.

Qualche idea?

MODIFICA: dimenticato di dire: se lancio l'istruzione sql direttamente su phpmyadmin, aggiunge la riga correttamente senza errori. Si blocca solo quando viene eseguito dalla riga di comando, anche se le istruzioni sopra sono correttamente inserite nel database e sono quasi la stessa di questa.

EDIT2: Ho rimosso tutte le linee fino al 46 e quando lancio il file i erros è la seguente:

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

Cambia solo la linea, ma quella linea è l'istruzione INSERT, che è esattamente come le altre istruzioni INSERT nel resto del file. Anche la riga precedente è corretta.

+3

linee di controllo 44 e 46, nonché ... –

+0

Ho anche loro controllati e hanno anche 26 colonne. – Pask

+0

In che modo l'istruzione create table per cercare questa tabella? –

risposta

10

ho affrontato un problema simile a causa di inserire le parentesi intorno :-(dati:

INSERT INTO Customers (Name,LastCredit,CreditDate) VALUES (<-- Here. 
    ("Nuclear Millitary Systems",500.0,CURRENT_DATE), 
    ("Evil Corporation",67890.95,"2012-02-12"), 
    ("Nuke Software Systems",5600.0,"2013-05-06"), 
    ("RR Millitary",600.0,"2013-05-06"), 
    ("Random Automation",560.0,"2012-05-01"), 
    ("Evil Data Systems",600.0,"2013-03-01") 
); 
1

Verificare la presenza di caratteri speciali nascosti nel file. Potresti pensare che tutti gli spazi bianchi nel file siano spazi, ma a volte altri personaggi possono uccidere l'inserto in un modo che non puoi capire guardando i dati.

Se tutto il resto fallisce, ridigitare manualmente l'INSERTO ed eseguirlo da solo in un file per vedere se fallisce ancora.

+0

Ho cancellato tutti i caratteri speciali nella riga prima e dopo quella, ma l'errore continua. Ho anche messo quella linea e quella successiva in un file separato e mysql li inserisce correttamente nel database. Questo sta cominciando a essere frustrante ... – Pask

+0

Inoltre, l'alimentazione di mysql con un file contenente le 4 righe prima e le seguenti 4 righe va anche ok :( – Pask

+0

Ho importato il file in phpmyadmin ma l'errore è lo stesso – Pask

9

Mi trovavo di fronte a un errore simile. Era solo questione di una virgola mancante. Controllare se tutte le voci del conto inserto sono separati da virgole

+1

Questo era proprio! YACPG - Ancora un altro copia-incolla goofup :) – Santosh

3

Nel mio caso ho avuto un grilletto su INSERT con mancata corrispondenza della colonna contare :(&

3

nel mio caso, la mia tabella di database ha un trigger associato a un altro tavolo, e c'era una colonna mancante nella tabella innescata.Qualcosa di simile a questo:

Tabella 1 colonne: UserAccountID, tipo di documento, i permessi, Stato

innescate Tabella 2 colonne: numero di revisione, stato di revisione, UserAccountID, autorizzazioni, Stato

Quindi, nel tabella 2, mancava la colonna "tipo di documento". Controllare i trigger nel DB

"spettacolo innesca da {} Nome database"

Problemi correlati