【发布时间】:2015-05-06 16:10:47
【问题描述】:
我正在尝试将总线表的事件设置为开启,但它不起作用。正在创建表和事件,但未触发事件。我已经在mysql-my.ini中设置了event_scheduler = ON;这一行并重启服务器。
// Create bus table
stt.execute("CREATE TABLE IF NOT EXISTS bus"
+ "(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,"
+ "mac VARCHAR(30) NOT NULL UNIQUE,"
+ "route int(11) NOT NULL,"
+ "latitude FLOAT(10,6) NOT NULL,"
+ "longitude FLOAT(10,6) NOT NULL,"
+ "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");
stt.execute("CREATE EVENT IF NOT EXISTS AutoDelete "
+ "ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 MINUTE "
+ "DO "
+ "DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 3 MINUTE)");
stt.execute("SET GLOBAL event_scheduler = ON");
【问题讨论】:
-
您的活动不重复。它只执行一次,从您创建它起 3 分钟。您确定在创建事件之前启用了事件调度程序吗?
-
如何让执行每 3 分钟重复一次?以及如何启用事件调度器?我认为每件事都是通过创建事件并在 my.cnf 文件中启用后发生的。