Just nu i M3-nätverket
Gå till innehåll

Radera rader där timetolive har uppnåtts.


tonlof

Rekommendera Poster

Hej, försöker radera rader baserat på en inbäddad select.

 

SQLite databasen är uppbyggd enlig nedan.

id, timestamp, data, timetolive

1, 2016-03-05 11:40:15, datatext1, 3600
2, 2016-03-05 11:40:23, datatext2, 1
3, 2016-03-05 11:40:33, datatext3, 10
 

timetolive är antal sekunder raden ska få överleva.

delete from queue where (SELECT ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive from queue) > 0

Enbart select ger mig en etta eller nolla beroende på om timetolive har uppnåtts baserat på aktuell tid. Så långt är det okay.

SELECT ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive from queue

Problemet är alltså hur jag sätter ihop dessa så att om select-satsen ger en etta så ska aktuell rad raderas.

Stort tack på förhand.

Länk till kommentar
Dela på andra webbplatser

Jag tror jag löste det.

delete from queue where ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive 
Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...