Utworzono bazę danych & Próbuję wczytać dane z pliku CSV arkusza kalkulacyjnego. Nie ma jeszcze żadnych danych. Kiedy uruchomienieBłąd mysql 1406
LOAD DATA INFILE 'docs.csv' INTO list FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (vendor, title, project, description, shelf);
uzyskać komunikat "ERROR 1406 (22001): dane zbyt długo w kolumnie 'sprzedawca' w rzędzie 1". Pozycja dostawcy w pierwszym rzędzie ma długość 6 znaków. Stworzyłem następująco mój tabeli:
CREATE TABLE list (
autonumber SERIAL,
vendor varchar(50),
title varchar(100),
project varchar(100),
description text,
shelf smallint UNSIGNED,
PRIMARY KEY(autonumber));
Istnieje przecinki & powrotu karetki (Alt + Enter w arkuszu kalkulacyjnym) w wielu wpisów w kolumnie opisu; Czy mam prawo używać \ t dla polecenia ZATWIERDZONE FIELDS &, czy powrót karetki spowoduje problemy?
Podajesz, że pola kończą się znakiem tabulacji - czy jest to rzeczywisty separator w pliku CSV? Wygląda na to, że separator nie został znaleziony, a mySQL próbuje wstawić wszystko do kolumny dostawcy jako wynik –
Jako arkusz kalkulacyjny zakładka oczywiście przemieszcza się z jednej komórki do drugiej, to znaczy, że każde pole znajduje się w oddzielnej komórce. Jeśli otworzę dokument w edytorze tekstowym, wyświetli się "Jacobs, raport podsumowujący, projekt nowego zakładu, ..." - każda pozycja wydaje się być oddzielona przecinkiem. W polu Opis są jednak przecinki w powszechnym użyciu. – user2165827
Pomimo tego, że są używane, zostaną usunięte, najprawdopodobniej poprzez umieszczenie ich w znakach ''. Zobacz odpowiedź @ Toma, aby powiadomić mySQL o tym. –