Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

Можно ли ограничить количество записей в таблице?

Можно ли в SQLite ограничить размер таблицы на количество записей и как это организовать? Например таблица набирает суммарно 100 строк, после чего самые старые записи удаляются и записываются новые.


Ответ

Можно написать триггер на вставку новых записей в таблицу. Предположим, у вас имеется таблица _table с полями
_id(ключ какой-то) _time(время создания записи)
Тогда триггер будет выглядеть следующим образом
CREATE TRIGGER delete_till_50 INSERT ON _table WHEN (select count(*) from _table)>100 BEGIN DELETE FROM _table WHERE _table._id IN (SELECT _table._id FROM _table ORDER BY _table._time limit (select count(*) - 100 from _table )); END;
При вставке новой записи самые старые записи будут удаляться. В базе всегда будет не более 100 записей.

Комментариев нет:

Отправить комментарий