sql >> データベース >  >> RDS >> Mysql

MySQLでのイベントの操作

    これを反対方向に考えていると思います。ストアドプロシージャでイベントを作成することはできませんが、できます。 ストアドプロシージャを作成し、イベントから呼び出します。

    例:

    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バージョンのマニュアルをダウンロードしてくださいここ




    1. Magentoで注文開始番号を変更する方法

    2. 外部キーが存在する場合、MySQL5.5外部キー制約は失敗します

    3. SQLServerのCTEのガイド

    4. データベース管理者向けのトップMySQLブログおよびWebサイト