4

ストアプロシージャ内でイベントを作成するには?

これは私がやろうとしていたことであり、構文エラーがあることを教えてくれますが、どこにあるのかは教えてくれません。

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `update_leaderboard`()
BEGIN


CREATE EVENT update_leaderboard_event
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 minute
    DO call update_leaderboard();



END

編集: 私のMySql(最後の行)によれば、それは可能であるはずです:

構文"。ストアド ルーチンの一部としてイベントを作成できますが、別のイベントによってイベントを作成することはできません。

Edit2が問題を発見しました:

エラー 1576: 本文が存在する場合、EVENT DDL ステートメントの再帰は禁止されています

しかし、まだ解決策はありません。

4

2 に答える 2

2

プロシージャ内で作成することはできません。個別に定義する必要があります。

Mysqlイベント スケジューラ
の詳細ブログを確認してください: http://goo.gl/6Hzjvg

于 2013-01-18T16:52:37.833 に答える
0

専用の外部アプリケーションで作成した「CREATE EVENT」と「ALTER EVENT」は、MySQLエンジンのDataBaseに直接「Request」することで作成します。

トリガーまたはプロシージャから特別なテーブル「Need create_alter event」に行を挿入し、特別な外部アプリケーションが行を周期的に読み取り、作成/変更イベントに関するリクエストを MySQL エンジン データベースに直接送信します。

于 2014-05-08T14:28:09.833 に答える