アクティビティをスケジュールすると、事前に設定した時刻に一連のアクションを確実に実行できます。スケジュール情報とイベント・ハンドラはいずれもデータベース自体に格納されます。
通常は必要ありませんが、1 つの名前付きイベントに 2 つ以上のスケジュールを関連付けることによって複雑なスケジュールを定義できます。たとえば、営業時間が曜日によって変わるような販売店で、営業時間中 1 時間に 1 回イベントを発生させることができます。それぞれ別のスケジュールを持つ複数のイベントを定義して、共通のストアド・プロシージャを呼び出すことで同じような効果が得られます。
イベントをスケジュールするとき、英語の曜日をフルネーム (Monday、Tuesday など) で使用することも、省略形 (Mon、Tue など) で使用することもできます。英語以外の言語で稼働するサーバで曜日名を認識する必要がある場合は、フルネームの英語の曜日を使用してください。
次に便利なスケジュールの例を示します。
インクリメンタル・バックアップを毎日午前 1 時に実行します。
CREATE EVENT IncrementalBackup SCHEDULE START TIME '1:00 AM' EVERY 24 HOURS HANDLER BEGIN BACKUP DATABASE DIRECTORY 'c:\\backup' TRANSACTION LOG ONLY TRANSACTION LOG RENAME MATCH END; |
終業時に受注の要約を作成します。
CREATE EVENT Summarize SCHEDULE START TIME '6:00 pm' ON ( 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ) HANDLER BEGIN INSERT INTO OrderSummary SELECT CURRENT DATE, COUNT( * ), SUM( amount ) FROM Orders WHERE date_ordered = current date END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |