创建每日活动的问题

时间:2013-04-05 00:05:18

标签: mysql

尝试在mysql中创建每日事件:

CREATE EVENT ResetStatus
    ON SCHEDULE
      EVERY 1 DAY
    DO

      BEGIN

            IF (DATE('2013-04-05') = CURDATE()) THEN
                UPDATE mytable
                SET resetstatus = 1
                WHERE id = (SELECT pid FROM usertable WHERE priority = 'A');

            END IF;

      END;

收到错误:

Lookup Error - MySQL Database Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 12

如果我接受更新语句并放入TOAD并运行,它运行时没有错误。

1 个答案:

答案 0 :(得分:1)

正如Defining Stored Programs所述:

  

如果使用mysql客户端程序定义包含分号字符的存储程序,则会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此您必须临时重新定义分隔符,以使mysql将整个存储的程序定义传递给服务器。

您需要将客户端设置为使用除;之外的语句分隔符,因为它当前认为它遇到的第一个分号(在UPDATE语句的末尾)正在终止{ {1}}陈述。

在MySQL命令行客户端中,可以使用CREATE EVENT command

DELIMITER