Bir tablo üzerinde bir alana bağlı kalarak son birkaç kaydı tutmam gerekti, ben de bir prosedür yazdım. Bu prosedür önce yeni kaydı yapıyor, ardından son kaydı bularak (örnekte 3 kayıda göre çalışıyor) ondan eski kayıtları siliyorum. Bütün bu işlemleri de transaction içerisinde yaparak daha da sağlıklı çalışmasını bekliyorum.
DELIMITER $$
CREATE DEFINER=`dbuser`@`%` PROCEDURE `update_visits`(_member_id int, _last_visit datetime)
BEGIN
declare _max_date date;
start transaction;
insert into VISITS (member_id, last_visit) value (_member_id, _last_visit);
select last_visit into _max_date from VISITS where member_id = _member_id order by last_visit desc limit 2, 1;
delete from VISITS where member_id = _member_id and last_visit < _max_date;
commit;
END