MySql加载数据infile重复

时间:2014-04-29 20:14:12

标签: php mysql csv

我有一个包含12000行和90列的大型CSV文件。

我想使用mysql加载数据infile查询将其上传到我的mysql数据库。

但我一直收到我的CSV在主键上有重复的错误。

我确信它在主键上没有重复。

可能是什么问题?

这是我的代码

$sql = "LOAD DATA INFILE '/a_bysch_store (2).csv' INTO TABLE a_bysch"
. " FIELDS TERMINATED BY ','"
. " LINES TERMINATED BY '\r\n'"
. " IGNORE 1 LINES"; 

//Try to execute query (not stmt) and catch mysqli error from engine and php error
if (!($stmt = $mysqli->query($sql))) {
   echo "\nQuery execute failed: ERRNO: (" . $mysqli->errno . ") " . $mysqli->error;
}

1 个答案:

答案 0 :(得分:0)

使用LOAD DATA LOCAL INFILE而不是LOAD DATA INFILE。这会将重复键错误转换为警告,并且文件应导出并跳过重复项。这与使用IGNORE开关相同。你可以使用任何一个。我看到你正在使用IGNORE 1 Lines,但这并不会忽略重复键。

此外,如果您使用自动增量作为主键,请不要在csv文件中传递该值。