удалить все строки, кроме последних 10 строк?Или максимальное количество строк = 10? - PullRequest
0 голосов
/ 10 июня 2019

У меня небольшой вопрос.Возможно ли, если у вас есть база данных, вы можете хранить только последние 10 записей, вставленных в таблицу?Или что ваша таблица может содержать только 10 записей, поэтому, когда вставляется новая запись, она добавляет ее, но избавляется от последней вставленной записи?

Я использую mySQL и PhpMyAdmin.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Вы можете сделать это, используя триггер.

Я не думаю, что на самом деле рекомендую это делать.Есть накладные расходы на удаление записей.Вместо этого вы можете просто создать представление, например:

create view v_table as
    select t.*
    from t
    order by insertionDateTime desc
    limit 10;

Это может показаться дорогим, но при индексе (insertionDateTime desc) производительность должна быть разумной.

0 голосов
/ 10 июня 2019

Вот один из способов:

delete from my_table where id not in (select id from my_table order by id desc limit 10);

Предполагается, что id - это числовое поле, которое увеличивается при каждой вставке. Отметки времени также будут работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...