创建预定事件时出错#1064

时间:2015-07-15 04:43:25

标签: mysql mysql-error-1064

我有一张存储新闻的表格。有两种类型的新闻:简单和预定新闻。预定新闻必须每年显示,并且必须在30天后隐藏。我无法在服务器上创建一个cron作业,所以我决定使用MySQL预定事件。 这是我的疑问。

canvases

但是当我尝试执行它时,MySQL会抛出错误


DROP EVENT IF EXISTS `update_news`;
DELIMITER $$

CREATE 
EVENT `update_news`
ON SCHEDULE EVERY 1 DAY STARTS '2015-07-15 00:00:00'
DO BEGIN

UPDATE `yakutsk-gf`.`app_news_item` 
SET `date` = DATE_ADD(`date`, INTERVAL 1 YEAR) 
WHERE `isCalendar` = '1' AND DATEDIFF(NOW(), `date`) > 30
ORDER BY `date` DESC;

END $$

DELIMITER ;

我试图找到解决问题的方法,但到目前为止还没有找到。 仅供参考,mysql版本为5.5.43-0

1 个答案:

答案 0 :(得分:1)

从技术上讲,您不需要更改DELIMITER并使用BEGIN...END阻止,因为您的身体只有一个声明。

以这种方式试试

CREATE EVENT update_news
ON SCHEDULE EVERY 1 DAY STARTS '2015-07-15 00:00:00' DO
  UPDATE yakutsk-gf.app_news_item
     SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
   WHERE isCalendar = '1' 
     AND DATEDIFF(NOW(), date) > 30
   ORDER BY date DESC;