sql >> Base de Datos >  >> RDS >> Mysql

MySQL:no inserte una nueva fila si las filas definidas son las mismas

Los valores anteriores no ser el mismo, porque el tiempo es diferente. Por desgracia.

Puedes hacer esto usando el insert . . . select sintaxis. La idea es seleccionar la última fila insertada y usar un where cláusula para filtrar las filas. El filtro no devolverá filas (y, por lo tanto, no insertará) cuando los valores sean los mismos:

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;