Ben çerçeveyiHer x dakikada bir nasıl otomatik olarak silinir?
ÖrneğinCodeIgniter kullanarak, benim sistem otomatik tablo A'da tüm kayıtları her 2 dakikada bu yapılabilir İster
silmek istediğiniz tablo A. var?
EğerBen çerçeveyiHer x dakikada bir nasıl otomatik olarak silinir?
ÖrneğinCodeIgniter kullanarak, benim sistem otomatik tablo A'da tüm kayıtları her 2 dakikada bu yapılabilir İster
silmek istediğiniz tablo A. var?
Eğerbunu sıfırlanacak kesilmiş kısmının Silmek yerine deyimi kullanın.
Önkoşul:
Sen MySQL sunucusu AÇIK event_scheduler olması gerekir.
SET GLOBAL event_scheduler = ON;
Not: yo Eğer olay zamanlayıcı ON
veya
SELECT @@event_scheduler;
OFF
event_scheduler ON
aşağıdaki sorguyu çalıştırmak açmak için ise
kontrol edip MYSQL Server
'u yeniden başlattıktan sonra, yapılandırma dosyasında aşağıdakiler yazılmadıkça olay zamanlayıcı durumu sıfırlanacaktır.
:my.ini dosyasında Linux için [mysqld]
bölüm
[mysqld]
event_scheduler=on
altında bunu yazmak:benim de.cnf
[mysqld]
event_scheduler=on
Olay dosyası:
aşağıdaki olay tablename
adlı tablodan verileri siler.
olay
CREATE
EVENT `deleteEvent`
ON SCHEDULE EVERY 2 MINUTE STARTS '2016-03-23 00:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
DELETE FROM tablename;
'2016-03-23 00:00:00'
de ve olay aralığı her 2 dakikada planlanacaktır bundan sonra ilk defa başlatılacak ve tablodan verileri siler.
DELETE
yerine Truncate
kullanabilirsiniz.
Çok teşekkür ederim. Localhost üzerinde çalışıyor olsun? –
Bir şey değil. Bu olayı localhost mysql sunucusunda çalıştırmak istiyorsanız, yukarıdaki görevi localhost mysql sunucusunda yapın. Ve aynı uzak mysql sunucusu için de geçerlidir. – 1000111
Çok teşekkür ederim –
Sen Tablo A'da her 2 dakikada bir tüm kayıtları silmek için bir cronjob kullanabilirsiniz ederiz. PHP betiğinizi (silme işleviyle) web sunucunuzdaki bir Cronjob'e atayın.
Çok teşekkürler –
Cevabım çalışma yöntemiyse lütfen cevabımı kabul edin. – Cornest
Daha iyi olduğunu düşündüğüm başka bir cevap var –
En iyi ve en hızlı yolu Silmek yerine Tablo kesecek olacak, böylece her iki etkinliğe By MySQL kendi olay zamanlayıcısı tarafından veya cronjob-
tarafından yapabiliriz Programlayıcı
DELIMITER $$
ALTER DEFINER=`root`@`localhost` EVENT `trun_table` ON SCHEDULE EVERY 2 MINUTE STARTS '2016-03-23 16:30:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
truncate table mytable;
END$$
DELIMITER ;
Mysql, Linux makinede çalışıyorsa veya Mysql Windows işletim sisteminde çalışıyorsa cronjob tarafından:
"truncate table mytable;" Bir dosyada sözdizimi ve cronjob veya görev zamanlayıcıdan zamanlama.
Not: Tabloda da auto_increment id sıfırlamak istemiyorsanız o zaman sen MySQL olay Zamanlayıcısı kullanabilirsiniz olarak trankulatı deyimi 1.
Çok teşekkür ederim –
Yardımına ihtiyacım var. Buraya bakın: http://stackoverflow.com/questions/38175735/how-to-get-data-in-function-extend-controller –
Basit cronjob kullanabilirsiniz? –
Ya da 'mysql olayı zamanlayıcı ' – 1000111
kullanabilirsiniz [Mysql içinde otomatik TRUNCATE tablo]' nın olası yinelenen (http://stackoverflow.com/questions/21956291/automatic-truncate-table-in-mysql) – kitensei