sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Infoga inte en ny rad om de definierade raderna är samma

De tidigare värdena inte vara densamma, eftersom tiden är annorlunda. Tyvärr.

Du kan göra detta med insert . . . select syntax. Tanken är att välja den sista raden som infogades och använda en where klausul för att filtrera raderna. Filtret returnerar inga rader (och därmed ingen infogning) när värdena är desamma:

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;


  1. Kan inte starta MySQL, port 3306 upptagen

  2. FEL 1075:Felaktig tabelldefinition; det kan bara finnas en automatisk kolumn och den måste definieras som en nyckel

  3. postgres installation initieringen av databasklustret misslyckades ( Postgresql version 9.4.4 )

  4. Stöder SQLDeveloper exekvering av skript?