Just nu i M3-nätverket
Jump to content

Radera rader där timetolive har uppnåtts.


tonlof

Recommended Posts

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.

Link to comment
Share on other sites

Jag tror jag löste det.

delete from queue where ((JulianDay(datetime('now')) - JulianDay(timestamp)) * 24 * 60 * 60) > timetolive 
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...