create table test ( stamp datetime, data varchar(10));
-- Create stuff in random time order
insert into test values (datetime('now', '-09 hours'), 'B');
insert into test values (datetime('now', '-04 hours'), 'G');
insert into test values (datetime('now', '-10 hours'), 'A');
insert into test values (datetime('now', '-03 hours'), 'H');
insert into test values (datetime('now', '-08 hours'), 'C');
insert into test values (datetime('now', '-01 hours'), 'J');
insert into test values (datetime('now', '-02 hours'), 'I');
insert into test values (datetime('now', '-06 hours'), 'E');
insert into test values (datetime('now', '-05 hours'), 'F');
insert into test values (datetime('now', '-07 hours'), 'D');
-- Display it in default and time order
select 'Default order';
select * from test;
select 'Time order';
select * from test order by stamp;
--
-- Keep only five most recent rows
delete from test
where rowid not in (
select rowid
from test
order by stamp desc
limit 5)
;
select 'Default order after delete';
select * from test;
select 'Time order after delete';
select * from test order by stamp;
create table test ( stamp datetime, data varchar(10));
-- Create stuff in random time order
insert into test values (datetime('now', '-09 hours'), 'B');
insert into test values (datetime('now', '-04 hours'), 'G');
insert into test values (datetime('now', '-10 hours'), 'A');
insert into test values (datetime('now', '-03 hours'), 'H');
insert into test values (datetime('now', '-08 hours'), 'C');
insert into test values (datetime('now', '-01 hours'), 'J');
insert into test values (datetime('now', '-02 hours'), 'I');
insert into test values (datetime('now', '-06 hours'), 'E');
insert into test values (datetime('now', '-05 hours'), 'F');
insert into test values (datetime('now', '-07 hours'), 'D');
-- Display it in default and time order
select 'Default order';
select * from test;
select 'Time order';
select * from test order by stamp;
--
-- Keep only five most recent rows
delete from test
where rowid not in (
select rowid
from test
order by stamp desc
limit 5)
;
select 'Default order after delete';
select * from test;
select 'Time order after delete';
select * from test order by stamp;
To copy to clipboard, switch view to plain text mode
There are many ways to do it. There are also quite few ways to get unexpected results. The example may not do the expected thing if two recent timestamps are equal.
Bookmarks