Как оставить в таблице не больше N последних записей определенного типа?
Подскажите пожалуйста, как малой кровью при вставке строки в таблицу оставить в ней не более N записей такого же "типа" (значение поля).
Например,
ID | type | time | other
1 | 1 | 2020-01-01 | Bla-bla-bla
2 | 1 | 2020-01-02 | Bla-bla-bla
3 | 2 | 2020-01-02 | Bla-bla-bla
4 | 1 | 2020-01-03 | Bla-bla-bla
При N = 3 и вставке записи
5 | 1 | 2020-01-06 | Bla-bla-bla
запись
1 | 1 | 2020-01-01 | Bla-bla-bla
должна удалиться.
При вставке записи
6 | 2 | 2020-01-07 | Bla-bla-bla
ничего не удаляется, т.к. записей с type = 2 только 2.
При вставке записи
7 | 1 | 2020-01-07 | Bla-bla-bla
запись
2 | 1 | 2020-01-02 | Bla-bla-bla
должна удалиться и т.д.
Триггером по понятным причинам сделать нельзя. Советуют делать Mysql event, но при большом "трафике" вставок будут моменты, когда записей больше N. Выносить эту проверку в приложение (т.е. после insert делать select и затем delete, всё это в транзакции) не хочется, но чувствую, что придется.
И попутный вопрос, MySQL же не умеет delete from ... where ..order by .... limit OFFSET ? Как удалить одним запросом?