从分隔文件加载数据到mysql表时跳过错误行

san*_*kar 6 mysql

我使用以下查询将数据从文本文件加载到mysql表:

LOAD DATA INFILE "myFile.csv"
INTO TABLE some_table
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n' (admin,consumer);
Run Code Online (Sandbox Code Playgroud)

但是当我的文件包含一些错误行时,它无法跳过该行,整个过程在那个地方停止.我的意思是如果我的文件格式如下:

----------
sankr : kumar
----------
ramesh:rao
----------
new users add here
----------
sri : vennla
----------
anu : bhavya
----------

我必须通过跳过"新用户添加到此处"的行来加载.怎么办呢?

Dyl*_*lan 5

您要查找的关键字是IGNORE

如:

LOAD DATA INFILE "myFile.csv" IGNORE
INTO TABLE some_table
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n' (admin,consumer);
Run Code Online (Sandbox Code Playgroud)

  • 你确定吗?从 mysql 文档 http://dev.mysql.com/doc/refman/5.5/en/load-data.html `IGNORE` 表示忽略具有重复主键和现有行的行。 (3认同)

Pek*_*ica -3

无法使用 跳过数据内的行LOAD DATA INFILE

只需稍后使用单独的查询删除该记录即可。

DELETE FROM table WHERE column = "new users add here";
Run Code Online (Sandbox Code Playgroud)