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 による編集

他のすべての人の利益のために、Bill はタイプミスを見つけました。

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 に答える