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

MySQL:non inserire una nuova riga se le righe definite sono le stesse

I valori precedenti non essere lo stesso, perché il tempo è diverso. Ahimè.

Puoi farlo usando il insert . . . select sintassi. L'idea è di selezionare l'ultima riga inserita e utilizzare un where clausola per filtrare le righe. Il filtro non restituirà righe (e quindi nessun inserto) quando i valori sono gli stessi:

insert into AeroSamples(temperature, pressure, humidity) 
    select :t, :p, :h
    from (select temperature, pressure, humidity
          from AeroSamples
          order by id desc
          limit 1
         ) as1
    where as1.temperature <> :t or as1.pressure <> :p or as1.humidity <> :h;