Mysql
 sql >> Database >  >> RDS >> Mysql

MySql Table Inserisci se non esiste altrimenti aggiorna

Jai ha ragione sul fatto che dovresti usare INSERT ... ON DUPLICATE KEY UPDATE .

Nota che non è necessario includere datenum nella clausola di aggiornamento poiché è la chiave univoca, quindi non dovrebbe cambiare. Devi includere tutte le altre colonne della tabella. Puoi utilizzare VALUES() funzione per assicurarsi che vengano utilizzati i valori corretti durante l'aggiornamento delle altre colonne.

Ecco il tuo aggiornamento riscritto usando l'apposito INSERT ... ON DUPLICATE KEY UPDATE sintassi per MySQL:

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)