我有一个mysql表,希望每天晚上午夜“清空”它。我在网上搜索了一个答案,却发现没有什么对我有帮助。我有使用javascript来获取当前时间的想法,然后运行一个if语句,看看它是否等于午夜,以及是否要执行删除该信息的php脚本。
Javascript:
var myVar=setInterval(function(){myTimer()},1000); function myTimer() { var d=new Date(); var t=d.toLocaleTimeString(); if(t == 12:00:00 AM){ $.ajax({ URL: 'delete.php'; }); }; };
delete.php:
<?php require 'connect.php'; mysql_query("DELETE * FROM messages;"); ?>
我已经通过将if语句中的时间设置为比我的实际时间提前几分钟的时间进行了测试,这是行不通的。
实现自己的事件调度程序,尤其是作为使用JavaScript的网页来实现是一个坏主意。用于其中之一
一个的cron作业运行DELETE通过MySQL命令行界面声明
DELETE
/path/to/mysql -u<user> -p"<password>" <db_name> -e "delete from messages"
或MySQL事件,例如
CREATE EVENT delete_messages_at_midnight聽 ON SCHEDULE EVERY 1 DAY聽STARTS CURDATE() + INTERVAL 1 DAY DO DELETE FROM messages;
如果您使用MySQL事件方法:
SHOW PROCESSLIST
Daemon
event_scheduler
SET GLOBAL event_scheduler = ON;