2010-07-10 9 views
0

Je charge un fichier dans une table avec php. Je crée une table comme ceci:LOAD DATA INFILE REPLACE ne semble pas fonctionner avec plusieurs champs?

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())"; 

et remplissez-le à partir d'un fichier texte comme celui-ci:

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

Même si j'utilise REPLACE et des données est unique, il crée des enregistrements en double, sauf pour les données sont les mêmes dans le dossier. Quelqu'un peut-il suggérer où je vais mal? Je ne veux que remplacer les enregistrements basés sur des correspondances par des données. J'ai lu la documentation encore et encore, cela me semble juste.

Répondre

0

je pensais faire faire clé de données ferait, mais il insère encore si l'ordre est différent

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())";