Вот кое-что, что сработало для меня, используя вспомогательную таблицу с именем bookkeepings
create table bookkeepings (bk_name text primary key, bk_value integer not null);
insert or replace into bookkeepings values ('Max Entries', 50);
insert or replace into bookkeepings values ('Qty Entries', 0);
create trigger log_entries_limit_trigger before insert on log_entries
for each row
when (select bk_value from bookkeepings where bk_name = 'Qty Entries')
>= (select bk_value from bookkeepings where bk_name = 'Max Entries')
begin
delete from log_entries
where timestamp = (select timestamp from log_entries order by timestamp limit 1);
end;
create trigger log_entries_count_insert_trigger after insert on log_entries
for each row
begin
update bookkeepings set bk_value = bk_value + 1 where bk_name = 'Qty Entries';
end;
create trigger log_entries_count_delete_trigger after delete on log_entries
for each row
begin
update bookkeepings set bk_value = bk_value - 1 where bk_name = 'Qty Entries';
end;
Вы можете изменить limit 1
на limit 100
, чтобы удалить 100 строк.