Posts Tagged ‘procedure’

Mysql rolling record appender procedure

Tuesday, January 24th, 2012

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