Ho creato un database & sto tentando di caricare i dati da un file csv di un foglio di calcolo. Non ci sono ancora dati in esso. Quando eseguoerrore mysql 1406
LOAD DATA INFILE 'docs.csv' INTO list FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (vendor, title, project, description, shelf);
ottengo un messaggio "ERROR 1406 (22001): dati troppo lungo per la colonna 'vendor' alla riga 1". La voce del venditore alla riga 1 è tuttavia lunga 6 caratteri. Ho creato il mio tabella come segue:
CREATE TABLE list (
autonumber SERIAL,
vendor varchar(50),
title varchar(100),
project varchar(100),
description text,
shelf smallint UNSIGNED,
PRIMARY KEY(autonumber));
Ci sono le virgole & ritorni a capo (Alt + Invio nel foglio di calcolo) in molte voci nella colonna descrizione; ho ragione nell'usare \ t per il comando TERMINATO CAMPI & i ritorni a capo causano problemi?
Si sta specificando che i campi sono terminati da un carattere di tabulazione - è questo il separatore effettivo nel file CSV? Sembra che il separatore non venga trovato e mySQL stia tentando di inserire tutto nella colonna del fornitore come risultato –
Come foglio di calcolo, la scheda passa ovviamente da una cella alla successiva, vale a dire che ogni campo si trova in una cella separata. Se apro il documento in un editor di testo, viene visualizzato "Jacobs, Report di riepilogo, Nuovo progetto di introduzione all'impianto, ...", - ogni voce sembra essere separata da una virgola. Nel campo Descrizione però ci sono virgole in uso comune. – user2165827
Anche se sono usati, saranno stati sfuggiti, molto probabilmente essendo racchiusi tra i caratteri '' '. Vedere la risposta di @ Tom per far sapere a mySQL di questo. –