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 に答える