2010-07-21 16 views
17

Ho bisogno di aggiornare le righe esistenti nella tabella con l'infile dei dati di carico in base ad alcune condizioni, è possibile?mysql load data infile where clausola

 
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] 

risposta

0

In MySQL è possibile creare trigger prima dell'aggiornamento. Quindi in questo caso suggerisco di usare:

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 ; 

Dopo aver creato il trigger, è possibile eseguire il caricamento dei dati infile senza WHERE. Non sono sicuro di quale sia la tua condizione specifica richiesta, ma lo faccio all'interno di BEGIN e END.