LOAD DATA INFILE REPLACE似乎不适用于多个字段?

时间:2010-07-10 03:24:30

标签: php mysql replace load-data-infile

我正在使用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,它也会创建重复记录,除非记录中的订单和数据都相同。有人可以建议我哪里出错吗?我只希望它根据与数据的匹配来替换记录。我一遍又一遍地阅读文档,这对我来说是正确的。

1 个答案:

答案 0 :(得分: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())";