如何自动删除每x分钟?

mos*_*toh 3 php mysql codeigniter

我使用codeigniter框架

例如,我有表A.我希望我的系统每2分钟自动删除表A中的所有记录

是否可以做到?

谢谢

100*_*111 7

您可以使用MySQL事件调度程序.


先决条件:

您必须在mysql服务器中启用event_scheduler.

检查事件调度是否ONOFF

SELECT @@event_scheduler;

要转动event_scheduler,请ON运行以下查询:

SET GLOBAL event_scheduler = ON;


注意:如果重新启动,MYSQL Server则将重置事件调度程序状态,除非在配置文件中写入以下内容.

对于Windows:my.ini文件中,在下面的[mysqld]部分中写下

[mysqld]
event_scheduler=on
Run Code Online (Sandbox Code Playgroud)

对于Linux:my.cnf文件中

[mysqld]
event_scheduler=on
Run Code Online (Sandbox Code Playgroud)

事件:

以下事件将从名为table的表中删除数据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;
Run Code Online (Sandbox Code Playgroud)

该事件将在第一次启动'2016-03-23 00:00:00' ,之后将每隔2分钟安排一次事件,并将从您的表中删除数据.

你可以用Truncate而不是DELETE.

TRUNCATE vs DELETE