0

PHPでファイルをテーブルにロードしています。次のようなテーブルを作成します。

CREATE TABLE IF NOT EXISTS $table (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`order` INT DEFAULT 0,
`data` VARCHAR(200) UNIQUE,
`cur_timestamp` TIMESTAMP DEFAULT NOW())";

そして、次のようなテキスト ファイルから入力します。

LOAD DATA LOCAL 
INFILE '".$file ."' REPLACE 
INTO TABLE $table 
FIELDS TERMINATED BY '^' 
(`order`,`data`)";

REPLACE を使用していて、データが UNIQUE であっても、レコード内の順序とデータが同じでない限り、重複レコードが作成されます。誰かが私が間違っているところを提案できますか? データとの一致に基づいてレコードを置き換えたいだけです。ドキュメントを何度も読みましたが、これは私には正しいようです。

4

1 に答える 1

0

データをKEYにすればいいと思ったのですが、順序が違うと挿入してしまいます

CREATE TABLE IF NOT EXISTS $table (
`id` INT AUTO_INCREMENT KEY,
`order` INT DEFAULT 0,
`data` VARCHAR(200) UNIQUE KEY,
`cur_timestamp` TIMESTAMP DEFAULT NOW())";
于 2010-07-10T03:55:39.997 に答える