MySQL 9.0 版本說明
事件排程器會將因錯誤或警告而終止的事件執行相關資訊寫入 MySQL 伺服器的錯誤日誌。請參閱第 27.5.6 節「事件排程器與 MySQL 權限」中的範例。
為了取得事件排程器的狀態資訊以進行除錯和疑難排解,請執行 mysqladmin debug(請參閱第 6.5.2 節「mysqladmin — MySQL 伺服器管理程式」);執行此命令後,伺服器的錯誤日誌會包含與事件排程器相關的輸出,類似於此處顯示的內容
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(Result consisted of more than one row
)。對於這兩種情況,您可以宣告條件處理程式來避免記錄警告;請參閱第 15.6.7.2 節「DECLARE ... HANDLER 語句」。對於可能檢索多個列的語句,另一種策略是使用 LIMIT 1
將結果集限制為單一列。