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
」 も参照してください。