イベントスケジューラは、エラーまたは警告で終了したイベント実行に関する情報を、MySQL Server のエラーログに書き込みます。 例については セクション25.4.6「イベントスケジューラと MySQL 権限」を参照してください。
デバッグおよびトラブルシューティングのためにイベントスケジューラの状態に関する状態を取得するには、mysqladmin debug を実行します (セクション4.5.2「mysqladmin — A MySQL Server 管理プログラム」を参照してください)。このコマンドの実行後に、ここに示すようなイベントスケジューラに関連した出力がサーバーのエラーログに含まれます。
Events status:
LLA = Last Locked At LUA = Last Unlocked At
WOC = Waiting On Condition DL = Data Locked
Event scheduler status:
State : INITIALIZED
Thread id : 0
LLA : n/a:0
LUA : n/a:0
WOC : NO
Workers : 0
Executed : 0
Data locked: NO
Event queue status:
Element count : 0
Data locked : NO
Attempting lock : NO
LLA : init_queue:95
LUA : init_queue:103
WOC : NO
Next activation : never
イベントスケジューラが実行するイベントの一部として生じるステートメント内で、診断メッセージ (エラーだけでなく警告も) がエラーログと、Windows ではアプリケーションイベントログに書き込まれます。 頻繁に実行するイベントの場合、これにより、多数のメッセージが記録される結果になることがあります。 たとえば、SELECT ... INTO
ステートメントの場合、クエリーが行を返さなければ、エラーコード 1329 で警告が発生し (var_list
No data
)、変数値は変更されないままになります。 クエリーが複数の行を返す場合は、エラー 1172 が発生します (結果が 2 行以上です
)。 どちらの条件についても、条件ハンドラを宣言すると、警告を記録させないようにできます。セクション13.6.7.2「DECLARE ... HANDLER ステートメント」を参照してください。 複数の行を取得できるステートメントの場合、LIMIT 1
を使用して結果セットを単一の行に制限するという別の方法があります。