1

我试图运行一个预定的事件,并得到一个错误:查询为空。有任何想法吗?

CREATE TEMPORARY TABLE `event_test` (
 `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
 event_name VARCHAR(100),
 event_time TIMESTAMP,
 PRIMARY KEY (`id`)
); 

DELIMITER $$
CREATE
EVENT event_test
ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ENDS '2014-01-01 00:00.00'
DO BEGIN
    INSERT INTO event_test (event_name) VALUES("TEST_EVENT");
END;
 DELIMITER $$
4

2 回答 2

1

用作$$之后的语句终止符END

由 RolandoMySQLDBA 编辑

为了其他人的利益,比尔发现了一个错字:

DELIMITER $$
CREATE
EVENT event_test
ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ENDS '2014-01-01 00:00.00'
DO BEGIN
    INSERT INTO event_test (event_name) VALUES("TEST_EVENT");
END;
 DELIMITER $$

它应该是

DELIMITER $$
CREATE
EVENT event_test
ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ENDS '2014-01-01 00:00.00'
DO BEGIN
    INSERT INTO event_test (event_name) VALUES("TEST_EVENT");
END $$
 DELIMITER ;
于 2013-02-13T19:03:20.057 回答
1

您需要通过在my.cnf

请将此添加到my.cnf

[mysqld]
event-scheduler=1

您可能不必重新启动mysql。登录 mysql 并运行:

mysql> SET GLOBAL event_scheduler = 1;

查看计划任务是否启动。如果没有,则运行

service mysql restart
于 2013-02-13T19:03:32.677 回答