Как загрузить мой полный CSV-файл в таблицу? - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь загрузить файл .csv в таблицу mysql, но в настоящее время он будет загружать только 1001 строку фильмов в таблицу фильмов, когда есть еще несколько тысяч строк, которые он пропускает

Я попытался изменить int на Bigint, чтобы дать ему больше места, потому что в int было максимум 4 символа, самое большое было 7220, когда в файле csv было до 6 или 7 символов. например:

Lines included =

6116,Spice World,4.7,123
5902,A Bridge Too Far,6.9,207
Lines not included:
190955,Blood Ties,6,171
206647,Spectre,6.3,4466
13056,Punisher: War Zone,5.6,294

LAST line loaded:
7220,The Punisher,6.1,766 (LINE 1488)
last line not loaded:
7278,Meet the Spartans,3.7,359 (LINE 1608)

Я замечаю, что он достигает точки (7220), чем не приносит ничего более высокого, но включает в себя все 7220 и ниже.

 statement.executeUpdate("CREATE TABLE Movies("
                    + "id BIGINT, "
                    + "title VARCHAR(100), "
                    + "vote_average VARCHAR(100), "
                    + "vote_count VARCHAR(100), "
                    + "PRIMARY KEY(id))" );

  String loadQuery = "LOAD DATA LOCAL INFILE '" + "movies.csv"
                    + "' INTO TABLE Movies FIELDS TERMINATED BY ',' ENCLOSED BY '\"'\n" +
                    "LINES TERMINATED BY '\\r\\n'\n" +
                    "IGNORE 1 LINES";
            stmt.execute(loadQuery);//executing the query

ОБНОВЛЕНИЕ: ПОМНИТЕ, ЧТОБЫ ВЫБРАТЬ «NO LIMIT» В РАМКАХ MYSQL, что объясняет, почему select возвращал только 1000 строк.

1 Ответ

0 голосов
/ 16 апреля 2019

Я не запускал твой код, но, Попробуйте это:

CREATE TABLE discounts(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
expired_date DATE NOT NULL,
amount DECIMAL(10 , 2 ) NULL,
PRIMARY KEY (id)
);

Следующий файл discount.csv содержит первую строку в виде заголовков столбцов и три другие строки данных.

discount.csv

Следующая инструкция импортирует данные из файла c: \ tmp \ discount.csv в таблицу скидок.

LOAD DATA INFILE 'c:/tmp/discounts.csv' 
INTO TABLE discounts 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Поле файла оканчивается запятой, указанной в поле Поле, оканчивается на ',' и заключается в двойные кавычки, указанные в кавычках '"'.

Каждая строка файла csv заканчивается символом новой строки, обозначенным как ЛИНИИ, ПРЕКРАЩЕННЫЕ '\n'.

Поскольку файл содержит первую строку, содержащую заголовки столбцов, которые не следует импортировать в таблицу, поэтому мы игнорируем это, указав параметр IGNORE 1 ROWS.

Теперь мы можем проверить таблицу скидок, чтобы увидеть, импортируются ли данные.

SELECT * FROM discounts;

таблица скидок

Надеюсь, это было полезно.

...