Facebook Twitter

MySQL'de 1 aydan Eski İçerikleri Silmek

Eski içerikleri yani(30 günden sonrakileri) silmek büyük projelerde işimize yarayacaktır. biz genelde böyle yapıyoruz, çok önemli içerik depolanmıyors...



eski içerikleri yani(30 günden sonrakileri) silmek büyük projelerde işimize yarayacaktır. biz genelde böyle yapıyoruz, çok önemli içerik depolanmıyorsa anlık olarak kullanıcıyı ilgilendiren içerikler ise belli aralıklarla bu sorguyu çalıştırıp 30 günden eski içerikleri veritabanınızda boşu boşuna yer kaplamaması için silebilirsiniz.

Örnek Kodlar:

DELETE FROM tablo_adiniz
WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 1 MONTH);


tabloda tarihi tuttuğunuz alanın adını yazıp çalıştırmanız yeterli sorguyu.
İsterseniz 10 günlük, 15 günlük.. x günlük şeklinde de içerik silebilirsiniz.
O zamanda INTERVAL 1 MONTH yerine INTERVAL x DAY olacak.
Mesela 15 günlük içeriği silelim;

DELETE FROM tablo_adiniz
WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 15 DAY);
Güncelleme: MySQL Event Scheduler (olay zamanlayıcısı) ile bu işlemi otomatikte yaptırabiliriz. Şu sorguyu çalıştırmamız yeterli;
SET GLOBAL event_scheduler = ON;

DELIMITER $$

CREATE EVENT clearLog
ON SCHEDULE EVERY ‘1’ MONTH
STARTS ‘2011-05-01 00:00:00′
DO
BEGIN
DELETE FROM tablo_adiniz WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 1 MONTH);
END$$

DELIMITER ;

hepsi bu kadar herkese hayırlı günler dileriz
PROJE SORUMLUSU
 ARİF ALBAYRAK