Mysql 创建每日活动的问题
正在尝试在mysql中创建每日事件:Mysql 创建每日活动的问题,mysql,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 = (SEL
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
如果我接受update语句并将其放在TOAD中并运行,则它运行时不会出错 如以下文件所述:
如果使用客户机程序定义包含分号字符的存储程序,则会出现问题。默认情况下,它本身将分号识别为语句分隔符,因此必须临时重新定义分隔符,以便将整个存储程序定义传递给服务器
您需要将客户端设置为使用除之外的语句分隔符
,因为它当前认为它遇到的第一个分号(在UPDATE
语句末尾)是终止CREATE EVENT
语句
在MySQL命令行客户端中,可以使用分隔符
:
工作得很有魅力。必须等待10分钟才能接受你的答案
DELIMITER ;; -- or anything else you like
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
;;
DELIMITER ; -- return to normal