如何将完整的 csv 文件加载到 table?

How do I load my complete csv file into a table?

我正在尝试将 .csv 文件上传到 mysql table,但目前它只会上传电影中的 1001 行电影 table 当有一对它遗漏的更多行

我尝试将 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

更新:记住 SELECT "NO LIMIT" 在 MYSQL 内,这解释了为什么 select 只返回 1000 行。

我没有 运行 你的代码,但是, 试试这个:

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)
);

以下 discounts.csv 文件包含第一行作为列标题和其他三行数据。

discount.csv

以下语句将数据从 c:\tmp\discounts.csv 文件导入到折扣 table.

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

文件的字段以逗号结尾,字段以','结尾,并用双引号括起来,由'"'指定。

csv 文件的每一行都由换行符终止,换行符由 LINES TERMINATED BY '\n' 指示。

因为文件的第一行包含列标题,不应将其导入 table,因此我们通过指定 IGNORE 1 ROWS 选项忽略它。

现在,我们可以查看折扣table,看看是否导入了数据。

SELECT * FROM discounts;

table of discount

希望这对您有所帮助。