2010-07-21 121 views
17

我需要根據某些條件更新帶有加載數據infile的表中的現有行,這可能嗎?mysql加載數據infile where子句

 
load data infile 'E:/xxx.csv' 
into table tld_tod 
@aaa, @xxx_date, @ccc 
fields terminated by ',' 
LINES TERMINATED BY '\r\n' 
set xxx = str_to_date(@xxx_date, '%d-%b-%y') 
where xxx is not null and [email protected] 

回答

0

在MySQL中可以在更新之前創建觸發器。所以在這種情況下,我建議使用:

delimiter // 
CREATE TRIGGER upd_check BEFORE UPDATE ON table 
     FOR EACH ROW 
     BEGIN 
      IF NEW.xxx IS NOT NULL THEN 
       SET NEW.xxx = 0; 
      END IF; 
     END;// 
delimiter ; 

創建觸發器後,您可以運行加載數據infile而無需使用WHERE。 我不確定你的特定條件是什麼,但是在BEGIN和END裏面。