【发布时间】:2020-06-05 06:53:37
【问题描述】:
我们可以在 MySQL 存储过程中创建一个事件吗?我尝试在 MySQL 存储过程中创建事件调度程序,但未创建事件
【问题讨论】:
标签: mysql mysql-error-1064 mysql-event
我们可以在 MySQL 存储过程中创建一个事件吗?我尝试在 MySQL 存储过程中创建事件调度程序,但未创建事件
【问题讨论】:
标签: mysql mysql-error-1064 mysql-event
MYSQL 文档甚至在 v8 中也没有更新,以消除 https://dev.mysql.com/doc/refman/8.0/en/create-event.html 之间的不一致,后者在最后一句中声明“您可以创建一个事件作为存储例程的一部分,但一个事件不能由另一个事件创建。”和 https://dev.mysql.com/doc/refman/8.0/en/stored-program-restrictions.html 在 EVENT RESTRICTIONS 下声明“不得从存储的程序中创建、更改或删除事件” - 后者是正确的语句。
【讨论】:
Restrictions on Stored Programs
通常,SQL 准备语句中不允许的语句在存储程序中也不允许。 ... SIGNAL、RESIGNAL 和 GET DIAGNOSTICS 除外,它们不允许作为准备好的语句,但在存储程序中是允许的。
“准备好的语句中允许的 SQL 语法”列表中没有 CREATE EVENT。
试图创建过程而试图创建事件的原因
ERROR 1576 (HY000):当 body 存在时,EVENT DDL 语句的递归被禁止。
【讨论】: