Задать вопрос

Как удалять предыдущие 100 записей из БД перед добавлением новых?

Доброй ночи!
Подскажите, пожалуйста, как мне удалять n-ое кол-во записей в БД, перед тем как добавлять новые?
Пример таков:
Имеется таблица с айпишниками юзеров, таблица быстро забивается и необходимо время от времени удалять старые записи, допустим при достижении 100 записей - удалять их.
Думал сделать триггер в Mysql, но не могу додуматься как.
Возможно, есть еще способы?
  • Вопрос задан
  • 467 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
а какова цель записи в таблицу, если вы эти записи не храните?
1) 100 записей и база "забилась"? Серьезно? Для мускуля 100 000 записей - средняя табличка.
2) В принципе если эти записи не нужны(хотя нафига их было тогда добавлять) тогда
@cnt :=  select count(`id`) from `sometable`
delete * from `sometable` where if(@cnt>100,1,0)

кажись так.
Ответ написан
Комментировать
@Andrey001
Как я понял из вопроса, 100 ip адресов много для отображения. Если это так, то ничего удалять не надо, а стоит составить запрос выборки вида:
SELECT * FROM ip_tabe ORDER BY id_ip DESC LIMIT 100

Обычно в базах ничего не удаляется, а помечается "как удаленное", но если в базе хранится мусор, который не жалко, то можно добавить столбец с TIMESTAMP и периодически удалять значения старше определенной разницы по времени.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы