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

时间:2011-12-15 17:12:01

标签: 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);

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

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

我必须通过跳过“新用户添加到此处”这一行来加载。怎么办呢?

3 个答案:

答案 0 :(得分:2)

您要查找的关键字是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);

答案 1 :(得分:0)

我找到了 LOAD DATA LOCAL INFILE'filename'替换 在数据格式错误(非法日期)后退出, 但 LOAD DATA LOCAL INFILE'filename' 和 LOAD DATA LOCAL INFILE'filename'IGNORE 继续进行。

据我所知,这与MySql文档(ver 5.0)相反。

答案 2 :(得分:-1)

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

稍后使用单独的查询删除记录。

DELETE FROM table WHERE column = "new users add here";