0

我试图做的是将一个 csv 文件加载到数据库中。但是由于重复输入,我遇到了问题。

我正在使用 PHP 脚本来加载文件。

$sql = "LOAD DATA INFILE '" . $target_path;
        $sql.= "' INTO TABLE dummy ";   
        $sql.= "COLUMNS TERMINATED BY ','";
        $sql.= "OPTIONALLY ENCLOSED BY '\"'";
        $sql.= "ESCAPED BY '\"'";
        $sql.= "LINES TERMINATED BY '\n'";
        $sql.= "IGNORE 1 LINES;";

数据库表结构:

id | firstname | lastname

CSV 文件内容..

id | firstname | lastname

1  John Doe
2  James Carry
3  Luke Borrow

正如预期的那样,“id”是主键。有没有办法即时跳过违反主键约束的值?

4

1 回答 1

6
LOAD DATA INFILE 'somefile' IGNORE 

从手册

如果您指定 IGNORE,将跳过与唯一键值上的现有行重复的输入行。

于 2013-08-13T22:58:16.983 回答