mysql:无法识别的语句类型。 (在SCHEDULE附近)尝试创建活动时间表时

时间:2015-11-23 07:59:46

标签: mysql

我正在尝试创建事件计划,但phpmyadmin在左侧无法识别的语句类型上显示错误。 (附近SCHEDULE)'。 MySql版本是10.1.8。我真的不明白这个代码或MySql / phpmyadmin或其他任何配置有什么问题。

    DELIMITER $$
    CREATE 
        EVENT `archive_blogs` 
        ON SCHEDULE
        EVERY 1 DAY
        STARTS '20:00:00' ON COMPLETION PRESERVE ENABLE 
        DO BEGIN
            .....
        END */$$
    DELIMITER ;

快照错误:无法识别的语句类型。 (附近SCHEDULE)

enter image description here

2 个答案:

答案 0 :(得分:2)

  

MySql版本是10.1.8

你确定它是MySQL吗?可能是MariaDB? 你在哪里得到这个错误 - 脚本,phpMyAdmin? 你试过从consle执行它吗?

至于

STARTS '20:00:00'

尝试以下内容

STARTS CONCAT(DATE(NOW()+INTERVAL 1 DAY ), ' 20:00:00')
来自MySQL doc的

To repeat actions at a regular interval, use an EVERY clause. The EVERY keyword is followed by an interval as described in the previous discussion of the AT keyword. (+ INTERVAL is not used with EVERY.) For example, EVERY 6 WEEK means “every six weeks”.

Although + INTERVAL clauses are not permitted in an EVERY clause, you can use the same complex time units permitted in a + INTERVAL.

An EVERY clause may contain an optional STARTS clause. STARTS is followed by a timestamp value that indicates when the action should begin repeating, and may also use + INTERVAL interval to specify an amount of time “from now”. For example, EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + INTERVAL 1 WEEK means “every three months, beginning one week from now”. Similarly, you can express “every two weeks, beginning six hours and fifteen minutes from now” as EVERY 2 WEEK STARTS CURRENT_TIMESTAMP + INTERVAL '6:15' HOUR_MINUTE. Not specifying STARTS is the same as using STARTS CURRENT_TIMESTAMP—that is, the action specified for the event begins repeating immediately upon creation of the event.

An EVERY clause may contain an optional ENDS clause. The ENDS keyword is followed by a timestamp value that tells MySQL when the event should stop repeating. You may also use + INTERVAL interval with ENDS; for instance, EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK is equivalent to “every twelve hours, beginning thirty minutes from now, and ending four weeks from now”. Not using ENDS means that the event continues executing indefinitely.

ENDS supports the same syntax for complex time units as STARTS does.

You may use STARTS, ENDS, both, or neither in an EVERY clause.

答案 1 :(得分:1)

试试这个,似乎也想要约会。

DELIMITER $$
CREATE EVENT `archive_blogs` 
    ON SCHEDULE
    EVERY 1 DAY
    STARTS '2015-11-23 20:00:00' 
    ON COMPLETION PRESERVE ENABLE 
    DO 
        select 8 as 'eight';
    $$
DELIMITER ;

它通过我的系统。

Create Event手册页。