mysql 没有读取整个文件,而是在使用“本地加载数据”时跳过行

mysql not reading the whole file, skipping rows instead while using `load data local`

在我的一个作业问题中,我需要读取一个包含 131262 行的输入文件。

以下是我读取输入的代码:

create table batsman_scored(
    id int(10) unsigned auto_increment primary key,
    match_id int(10),
    over_id int(10),
    ball_id int(10),
    runs_scored int(10),
    innings_no int(10)
);
load data local infile "data/batsman_scored.csv" 
into table batsman_scored
fields terminated by ','
lines terminated by '\n'
ignore 2 rows
;

问题是,出于某种原因,MySQL 没有读取整个文件,相反,它在几行后被终止。我检查了输入文件,那里没有任何可疑之处。 Mysql 输出:

Query OK, 568 rows affected, 65535 warnings (0.50 sec)
Records: 131260  Deleted: 0  Skipped: 130692  Warnings: 261952

谁能告诉我,为什么要跳过这么多行? MySQL 什么时候跳过行?

我检查过 MySQL 可以存储比 568 多得多的东西。

CSV data

我仍在等待答案,但评论 auto_increment 行:

create table batsman_scored(
    // id int(10) unsigned auto_increment primary key,
    match_id int(10),
    over_id int(10),
    ball_id int(10),
    runs_scored int(10),
    innings_no int(10)
);
load data local infile "data/batsman_scored.csv" 
into table batsman_scored
fields terminated by ','
lines terminated by '\n'
ignore 2 rows
;

使用

create table batsman_scored(
    id int(10) unsigned auto_increment primary key,
    match_id int(10),
    over_id int(10),
    ball_id int(10),
    runs_scored int(10),
    innings_no int(10)
);

load data local infile "data/batsman_scored.csv" 
into table batsman_scored
fields terminated by ','
lines terminated by '\n'
ignore 2 rows
(match_id, over_id, ball_id, runs_scored, innings_no)
;

id 列的值未存储在 CSV 中(table 包含 6 列,而 CSV 每行包含 5 个值),它们不会从文件中加载,它们在导入期间由自动增量生成。所以必须指定要加载的列列表,w/o id column.