I使用代码点火器框架
例如,我有表A,我希望系统每2分钟自动删除表A中的所有记录。
是否能做到?
谢谢
发布于 2016-03-23 10:58:52
您可以使用MySQL事件计划程序。
先决条件:
您必须在mysql服务器上打开event_scheduler。
检查事件调度程序是ON还是OFF
SELECT @@event_scheduler;
要转动event_scheduler ON,请运行以下查询:
SET GLOBAL event_scheduler = ON;
注意:,如果您重新启动MYSQL Server,那么事件调度程序状态将被重置,除非在配置文件中写入以下内容。
For Windows: in my.ini文件将其写入[mysqld]部分
[mysqld]
event_scheduler=onFor Linux: in my.cnf文件
[mysqld]
event_scheduler=on事件:
下面的事件将从名为tablename的表中删除数据。
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'第一次启动,并在此之后每隔2分钟安排一次,并将从表中删除数据。
您可以使用Truncate而不是DELETE。
发布于 2016-03-23 10:56:04
最好和快速的方法是截断表而不是删除表,所以您可以通过mysql自己的事件调度程序或cronjob
按事件调度的-
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上运行或任务管理器(如果Mysql运行在计算机上):
在一个文件中写入“截断表mytable;”语法,并从cronjob或任务调度程序中对其进行调度。
注意:如果您不想在表中重置您的auto_increment id,那么使用delete语句而不是truncate语句,因为truncate语句会将它重置为1。
发布于 2016-03-23 10:49:29
您可以使用Cronjob每2分钟删除表A中的所有记录。将PHP脚本(带有delete函数)分配给with服务器上的Cron作业。
https://stackoverflow.com/questions/36175959
复制相似问题