Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:Não insira uma nova linha se as linhas definidas forem iguais


Os valores anteriores não ser o mesmo, porque o tempo é diferente. Infelizmente.

Você pode fazer isso usando o insert . . . select sintaxe. A ideia é selecionar a última linha inserida e usar um where cláusula para filtrar as linhas. O filtro não retornará nenhuma linha (e, portanto, nenhuma inserção) quando os valores forem os mesmos:
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;