我在 mySql 中有一个事件时间表,需要在每个月的 15 日下午 2:00 运行。我写了如下:
create event asdb.e_monthly
on schedule
every 1 month
starts '2013-07-15 13:59:59'
do
INSERT INTO asdb.abc_test values('monthly','monthly');
但它没有将值插入 abc_tes 表。我错过了什么吗?
谢谢
我在 mySql 中有一个事件时间表,需要在每个月的 15 日下午 2:00 运行。我写了如下:
create event asdb.e_monthly
on schedule
every 1 month
starts '2013-07-15 13:59:59'
do
INSERT INTO asdb.abc_test values('monthly','monthly');
但它没有将值插入 abc_tes 表。我错过了什么吗?
谢谢
确保您的 event_scheduler 已启用。默认情况下,它被禁用。
SET GLOBAL event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
有关更多信息,请查看以下博客:
http://www.jeenalinfotech.com/blogs/mysql/mysql-event-scheduler/
验证是否event_scheduler
是ON
- 执行以下命令:
SHOW PROCESSLIST;
它将输出一个表/条目,您必须使用 User event_schedule
r 和 Command查找条目Daemon
:
Id User Host db Command Time State Info
22870 event_scheduler localhost \N Daemon 23 Waiting for next activation \N
或者,您还可以使用以下命令进行验证:
SELECT @@global.event_scheduler;
结果应该是ON
,否则将其设置为关闭(将获取0
命令),如下一节所述。
如果您没有任何此类条目(如上所述),您可以使用以下命令启动事件调度程序:
SET GLOBAL event_scheduler = ON;
完成后,您可以使用命令验证它是否已正确执行SHOW PROCESSLIST
,如上所述。