mysql - 计划事件 Mysql 不接受语法 BEGIN END

标签 mysql sql events syntax mysql-workbench

我肯定做了一些非常愚蠢的事情,但以下是正确的:

CREATE EVENT delete_old
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Clears old cache data from the DB.'
DO
DELETE FROM summoners 
WHERE `date` < (NOW() - INTERVAL 7 DAY);

下一位似乎在最后两行抛出语法错误:

CREATE EVENT delete_old
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Clears old cache data from the DB.'
DO BEGIN
DELETE FROM summoners 
WHERE `date` < (NOW() - INTERVAL 7 DAY);
END;

据我所知语法是正确的,但是 MySQL Workbench 不同意。我打算在 BEGIN - END 部分中创建多个表,这就是我需要它的原因。

我希望有人能弄清楚这里出了什么问题,我很茫然。 提前致谢, 笑脸

最佳答案

您必须将 DELIMITER 更改为未出现在您的事件正文中的内容。

我刚刚尝试过(MySQL Workbench 6.0.6、MySQL 5.6)并且运行良好。这是一个屏幕截图:

enter image description here

关于mysql - 计划事件 Mysql 不接受语法 BEGIN END,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686985/

相关文章:

php - 我们如何在 PHP 生成的 CSV 文件上添加空格?

mysql - 添加索引 Ruby on Rails 4.1.4 迁移

mysql - SQL 不等于或等于运算符使用

SQL 库数据库架构

android - Roboguice、AndroidAnnotations 和线程间的事件

mysql - 使用 MySQL 事件更新值

mysql - Node.js MySQL 模块中的 mysql.createConnection 和 mysql.createPool 有什么区别?

MySQL在一列中选择具有不同值的相同ID的不同行并排除另一列中的特定值

android - 将事件添加到日历 API 7

c# - 输入字符串的格式不正确,但不知道为什么