如何将csv文件内容加载到mysql数据库并避免重复输入?

时间:2013-08-13 22:52:39

标签: php mysql database

我想要做的是将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'是主键。有没有办法跳过违反主键约束的值?

1 个答案:

答案 0 :(得分:6)

LOAD DATA INFILE 'somefile' IGNORE 

From the manual

  

如果指定IGNORE,则会跳过复制唯一键值上现有行的输入行。