これを反対方向に考えていると思います。ストアドプロシージャでイベントを作成することはできませんが、できます。 ストアドプロシージャを作成し、イベントから呼び出します。
例:
delimiter $$
create procedure myProc()
-- Dummy procedure to move the data from mainTable to backupTable,
-- and then clear (truncate) mainTable
begin
insert into backupTable select * from mainTable;
truncate mainTable;
end $$
delimiter ;
-- Now, suposing that you want to execute this procedure every hour:
delimiter $$
create event myEvent
on schedule every 1 hour
do
begin
call myProc();
end $$
delimiter ;
これは、ワークベンチで他のクエリと同じように、またはコマンドラインクライアントで直接記述できます。
懸念事項について
コメントを読んだ後、MySQLWorkbenchとは何かについて少し混乱していると思います。
MySQL Workbenchは、MySQLサーバーに接続し、クエリと管理タスクを実行できる唯一のグラフィカルアプリケーションです。しかし、Workbenchはそうではありません MySQLのコア...それは単なるビューアです(ステロイドを使用しているかもしれませんが、結局のところビューアです)。
これで、イベントスケジューラはWorkbenchには存在しませんが、接続しているMySQLサーバーインスタンスに存在します。テーブル、ビュー、プロシージャ、および関数がWorkbenchインターフェイスではなくサーバーに保存されるのと同様に、イベントもサーバーに保存されます。
(はい、スケジュールされたイベントがグラフィカルインターフェイスのどこにも表示されないのは関連するSNAFUだと思いますが、...しばらくすると、そのような欲求不満を抱えて生活し、人生を歩むことを学びます)
たぶんあなたの唯一の懸念は、「ねえ、イベントスケジューラで実行するように設定されているイベントを知りたい場合はどうすればよいですか?」です。 「showevents」クエリを実行して現在のデータベース内のイベントのリストを表示したり、「showcreateeventyourEvent」を実行してcreate event
を表示したりできます。 そのイベントの構文。
私は主張します:マニュアルを読み、手元にコピーを保管してください(MySQLバージョンのマニュアルをダウンロードしてくださいここ 。