MySQL 5.1 リファレンスマニュアル :: 21 INFORMATION_SCHEMA データベース :: 21.20 INFORMATION_SCHEMA EVENTS テーブル
« 21.19 INFORMATION_SCHEMA PARTITIONS テーブル

21.21 INFORMATION_SCHEMA FILES テーブル »
Section Navigation      [Toggle]
  • 21 INFORMATION_SCHEMA データベース
  • 21.1 INFORMATION_SCHEMA SCHEMATA テーブル
  • 21.2 INFORMATION_SCHEMA TABLES テーブル
  • 21.3 INFORMATION_SCHEMA COLUMNS テーブル
  • 21.4 INFORMATION_SCHEMA STATISTICS テーブル
  • 21.5 INFORMATION_SCHEMA USER_PRIVILEGES テーブル
  • 21.6 INFORMATION_SCHEMA SCHEMA_PRIVILEGES テーブル
  • 21.7 INFORMATION_SCHEMA TABLE_PRIVILEGES テーブル
  • 21.8 INFORMATION_SCHEMA COLUMN_PRIVILEGES テーブル
  • 21.9 INFORMATION_SCHEMA CHARACTER_SETS テーブル
  • 21.10 INFORMATION_SCHEMA COLLATIONS テーブル
  • 21.11 INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY テーブル
  • 21.12 INFORMATION_SCHEMA TABLE_CONSTRAINTS テーブル
  • 21.13 INFORMATION_SCHEMA KEY_COLUMN_USAGE テーブル
  • 21.14 INFORMATION_SCHEMA ROUTINES テーブル
  • 21.15 INFORMATION_SCHEMA VIEWS テーブル
  • 21.16 INFORMATION_SCHEMA TRIGGERS テーブル
  • 21.17 INFORMATION_SCHEMA PLUGINS テーブル
  • 21.18 INFORMATION_SCHEMA ENGINES テーブル
  • 21.19 INFORMATION_SCHEMA PARTITIONS テーブル
  • 21.20 INFORMATION_SCHEMA EVENTS テーブル
  • 21.21 INFORMATION_SCHEMA FILES テーブル
  • 21.22 INFORMATION_SCHEMA PROCESSLIST テーブル
  • 21.23 INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS テーブル
  • 21.24 INFORMATION_SCHEMA GLOBAL_STATUS および SESSION_STATUS テーブル
  • 21.25 INFORMATION_SCHEMA GLOBAL_VARIABLES および SESSION_VARIABLES テーブル
  • 21.26 その他の INFORMATION_SCHEMA テーブル
  • 21.27 SHOW ステートメントへの拡張

21.20. INFORMATION_SCHEMA EVENTS テーブル

EVENTS テーブルは 章 19. Event Scheduler で説明した計画したイベントに関する情報を提供します。

INFORMATION_SCHEMA 名 SHOW 名 備考
EVENT_CATALOG   NULL, MySQL 拡張
EVENT_SCHEMA Db MySQL 拡張
EVENT_NAME Name MySQL 拡張
DEFINER Definer MySQL 拡張
EVENT_BODY   MySQL 拡張
EVENT_DEFINITION   MySQL 拡張
EVENT_TYPE Type MySQL 拡張
EXECUTE_AT Execute at MySQL 拡張
INTERVAL_VALUE Interval value MySQL 拡張
INTERVAL_FIELD Interval field MySQL 拡張
SQL_MODE   MySQL 拡張
STARTS Starts MySQL 拡張
ENDS Ends MySQL 拡張
STATUS Status MySQL 拡張
ON_COMPLETION   MySQL 拡張
CREATED   MySQL 拡張
LAST_ALTERED   MySQL 拡張
LAST_EXECUTED   MySQL 拡張
EVENT_COMMENT   MySQL 拡張

注:

  • EVENTS テーブルは非標準のテーブルです。それは MySQL 5.1.6 に追加されています。

  • EVENT_CATALOG:このカラムの値は常に NULL です。

  • EVENT_SCHEMA:イベントが属すスキーマ(データベース)の名前です。

  • EVENT_NAME:イベントの名前です。

  • DEFINER:イベントを作成したユーザーです。常に 'user_name'@'host_name' フォーマットに表示されます。

  • EVENT_BODY:イベントの DO 節のステートメントに使用された言語です。MySQL 5.1 では、これは常に SQL です。

    このカラムは MySQL 5.1.12 に追加されています。 MySQL の以前のバージョンの同じ名前のカラム(今の名前は EVENT_DEFINITION) と混同することはありません。

  • EVENT_DEFINITION:イベント DO 節を構成する SQL ステートメントのテキストです。換言すれば、このイベントで実行されたステートメントです。

    注:MySQL 5.1.12 以前のバージョンでは、このカラムは EVENT_BODY という名前でした。

  • EVENT_TYPE:ONE TIME あるいは RECURRING のいずれかの値です。

  • EXECUTE_AT:1 回のイベントでは、これはイベントの作成に使用された CREATE EVENT ステートメントの AT 節で指定された DATETIME 値、あるいはイベントを変更した最後の ALTER EVENT ステートメントです。このカラムに表示された値はイベント AT 節に含まれる INTERNAL 値の加算あるいは減算を意味しています。例えば、イベントが ON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR を使用して作成された場合、およびイベントが 2006-02-09 の 14:05:30 に作成された場合、カラムに表示される値は '2006-02-10 20:05:30' になります。

    そのイベントのタイミングが AT 節(すなわち、イベントは再帰的な場合)ではなく EVERY 節で決定される場合、 このカラムの値は NULL になります。

  • INTERVAL_VALUE:再帰的なイベントの場合、このカラムはイベント EVERY 節の数値的な部分を含みます。

    1 回のイベントの場合(つまり、イベントのタイミングが AT 節で決まるイベントの場合)、このカラムの値は NULL になります。

  • INTERVAL_FIELD:再帰的なイベントの場合、このカラムはそのイベントを管理する EVERY 節の単位部分を含みます。そのイベントは 'INTERVAL_' のプリフィックスが付きます。このように、このカラムは 'INTERVAL_YEAR'、'INTERVAL_QUARTER'、'INTERVAL_DAY' などの値を含みます。

    1 回のイベントの場合(つまり、そのタイミングが AT 節で決まるイベントの場合)、このカラムの値は NULL になります。

  • SQL_MODE:イベントが作成されたあるいは変更された時に実行中のSQL モード。

  • STARTS:定義に STARTS 節を含む再帰的なイベントでは、このカラムは相当する DATETIME 値を含みます。EXECUTE_AT カラムで、この値は使用されている式を解きます。

    イベントのタイミングに影響を与えるような STARTS 節がない場合、このカラムは空です。(MySQL 5.1.8 以前の場合は、そのような場合それは NULL が含まれていました。)

  • ENDS:定義に ENDS 節を含む再帰的なイベントでは、このカラムは相当する DATETIME 値を含みます。EXECUTE_AT カラム(前の例を参照)では、この値は使用されている式を解きます。

    イベントのタイミングに影響を与える ENDS 節がない場合、このカラムは NULL を含みます。

  • STATUS:ENABLED あるいは DISABLED の 2 つの値のいずれかの値です。

  • ON_COMPLETION:PRESERVE あるいは NOT PRESERVE の 2 つの値のいずれかの値です。

  • CREATED:イベントが作成された日時です。これは DATETIME 値です。

  • LAST_ALTERED:イベントが最後に変更された日時です。これは DATETIME 値です。イベントが作成されてから変更されなかった場合、このカラムは CREATED カラムと同じ値を保持します。

  • LAST_EXECUTED:イベントが最後に実行された日時です。DATETIME 値。イベントが実行されなかった場合、このカラムの値は NULL です。

  • EVENT_COMMENT:イベントにコメントがある場合のコメントのテキストです。コメントが無い場合、このカラムの値は空の文字列になります。

例:ユーザー jon@ghidora が e_daily というイベントを作成したとします。それを数分後に以下の ALTER EVENT ステートメントを使用して変更します。

DELIMITER |

CREATE EVENT e_daily
    ON SCHEDULE EVERY 1 DAY
    STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR
    DISABLE
    COMMENT 'Saves total number of sessions and
             clears the table once per day.'
    DO
      BEGIN
        INSERT INTO site_activity.totals (when, total)
          SELECT CURRENT_TIMESTAMP, COUNT(*) 
          FROM site_activity.sessions;
        DELETE FROM site_activity.sessions;
      END |

DELIMITER ;

ALTER EVENT e_daily
    ENABLED;

(コメントは複数の行にわたって展開できます。)

このユーザーは次に以下の SELECT ステートメントを実行し、下記の出力を得ます。

mysql> SELECT * FROM INFORMATION_SCHEMA.EVENTS
     > WHERE EVENT_NAME = 'e_daily' 
     > AND EVENT_SCHEMA = 'myschema'\G

*************************** 1. row ***************************
  EVENT_CATALOG: NULL
   EVENT_SCHEMA: myschema
     EVENT_NAME: e_daily
        DEFINER: jon@ghidora
     EVENT_BODY: BEGIN
                   INSERT INTO site_activity.totals (when, total)
                     SELECT CURRENT_TIMESTAMP, COUNT(*) 
                       FROM site_activity.sessions;
                   DELETE FROM site_activity.sessions;
                 END
     EVENT_TYPE: RECURRING
     EXECUTE_AT: NULL
 INTERVAL_VALUE: 1
 INTERVAL_FIELD: INTERVAL_DAY
       SQL_MODE: NULL
         STARTS: 2006-02-09 10:41:23
           ENDS: NULL
         STATUS: ENABLED
  ON_COMPLETION: DROP
        CREATED: 2006-02-09 14:35:35
   LAST_ALTERED: 2006-02-09 14:41:23
  LAST_EXECUTED: NULL
  EVENT_COMMENT: Saves total number of sessions and
                 clears the table once per day.
1 row in set (0.50 sec)

重要STARTS、ENDS、および LAST_EXECUTED カラムで表示された時間はサーバーのタイムゾーンの設定にかかわらず現在の世界時 (GMT あるいは UTC) で表示されます。mysql.event テーブルのstarts、ends、および last_executed カラム並びに SHOW [FULL] EVENTS の出力の Starts および ENDs カラムも同様に世界時を使用しています。)CREATED および LAST_ALTERED カラムはサーバーのタイムゾーン (mysql.event テーブルの created および last_altered カラムも同様) を使用しています。。

例えば、前に例示した e_daily イベントはオーストラリアのブリスベンにあるコンピューターで、東部オーストラリア時間の2006 年 2 月 9日 の 14:35:35 に作成されたとすると、それはタイムゾーンでは GMT+10.00 となります。イベントの定義は(このセクションの以前の例示の ALTER EVENT を使用して ) 数分後に 14:41:23 に更新されました。これらが CREATED および LAST_ALTERED に表示される値です。イベントは 6 時間後 — つまり、同日のローカルタイムの 20:41:23 に実行されるように計画されます。この時間から 10 時間を減算すると世界時の 10:41:23 が得られ、この値が STARTS に表示されます。

世界時の使用はアプリケーションでは当てに出来ません。というのは MySQL のリリースによってサーバーのローカルタイムが変更されることが予想されるためです。(Bug#16420 参照)

項12.5.4.15. 「SHOW EVENTS」 も参照してください。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates