MySQL olay zamanlayıcısı (event scheduler) periyodik olarak veya sadece 1 kez tetiklenebilir olayları planlamak için kullanılır. Olay zamanlayıcısı Mysql’e 5.1.6 sürümünde eklenmiştir. Dolayısıyla alt sürümlerde desteklenmez.
Olay zamanlayıcısını Unix’te bulunan cron job (zamanlanmış görev) gibi düşünebilirsiniz.
Varsayılan olarak olay zamanlayıcısı devre dışıdır. Yine de kontrol etmek isterseniz:
SHOW PROCESSLIST;
Sorgusunu çalıştırın. Eğer sorgu sonucunda event_scheduler görüyorsanız olay zamanlayıcısı aktiftir. Göremiyorsanız devre dışıdır. Olay zamanlayıcısını etkinleştirmek için:
Sorgusunu çalıştırabilirsiniz. Olay zamanlayıcısını etkinleştirdikten sonra SHOW PROCESSLIST sorgusunu tekrar çalıştırırsanız işlem listesinde event_scheduler kısmını göreceksiniz.
Olay zamanlayıcısını kapatmak için:
Sorgusunu çalıştırabilirisiniz.
Yeni bir etkinlik oluşturmak ve planlamak için CREATE EVENT söz dizimi kullanılır.
CREATE
EVENT ekle
ON
SCHEDULE
at
current_timestamp
DO
insert
into
veri(metin,tarih)
values
(
'Event testi'
,NOW());
Buradaki “ekle” olayımızın adıdır. “ON SCHEDULE” sözcüğünden sonra kullandığımız “at” olayı sadece bir kere çalıştırır. Olayı belirli zaman aralıklarında çalıştırmak için “every” kullanılır. ” current_timestamp” şu anki zamanı temsil eder. “Do” sözcüğünden sonra da çalıştırılacak olan sql cümleciği yazılır.
Olay zamanlayıcısı çeşitli ayarlarla oluşturulabilir.
Belirli bir tarih/zamanda olayı bir kez çalıştırmak: at “2015-02-14 20:15:10” (YYYY-MM-DD HH:MM:SS)
Yukarıda oluşturduğumuz “temizle” isimli olay 2016 yılbaşı gecesi sadece bir kez çalışacaktır.