Mysql

MySQL 5.6 - 在儲存過程中創建事件

  • August 29, 2016

我正在嘗試創建一個在 MySQL 中創建事件的過程。

例如,類似於以下內容:

delimiter //
CREATE PROCEDURE schedule_my_db_job() 
 BEGIN

   CREATE EVENT MY_DB_JOB 
   ON SCHEDULE EVERY 1 MINUTE DO 
   BEGIN 
       SELECT * FROM information_schema.events; -- for example
   END;      

 END//
delimiter ;

但是當我嘗試創建此過程時,它給了我以下錯誤。

ERROR 1576 (HY000): Recursion of EVENT DDL statements is forbidden when body is present

據我了解,MySQL 允許儲存過程在內部包含 CREATE EVENT sql 語句。(引自https://dev.mysql.com/doc/refman/5.6/en/create-event.html “您可以創建一個事件作為儲存常式的一部分,但另一個事件不能創建一個事件”)

你能告訴我這裡有什麼錯誤嗎?

謝謝。

MySQL 文件中似乎存在衝突。我認為MySQL 文件中的CREATE EVENT 語法部分在以後的版本中沒有正確更新。雖然“創建事件語法”部分說

您可以創建一個事件作為儲存常式的一部分,但一個事件不能由另一個事件創建。

在mysql 文件的Event Scheduler Restrictions部分中,它說

儲存的常式、觸發器或其他事件不得創建、更改或刪除事件。事件也不能創建、更改或刪除儲存的常式或觸發器。(錯誤 #16409、錯誤 #18896)

引用自:https://dba.stackexchange.com/questions/121434