2012-09-06 20 views

回答

4

您可以嘗試使用SHOW ERRORSHOW WARNING。要看到最後一個錯誤或警告,你可以使用它作爲:

SHOW ERRORS LIMIT 1 -- for SQL-state > 2 
SHOW WARNINGS LIMIT 1 -- for SQL-state 1,2 

爲了防止列出每一個錯誤,你可以處理一類SQL的錯誤,像這樣:

SQLWARNING是用'01'開始 的SQLSTATE類的簡寫。

NOT FOUND是以'02'開始 的SQLSTATE值類別的簡寫。這僅在遊標的上下文中是相關的,並且是 用於控制當光標到達數據集 集的末尾時發生的情況。如果沒有更多行可用,則在數據條件爲 SQLSTATE值02000時發生無數據條件。要檢測此情況,可以爲其設置一個 處理程序(或NOT FOUND條件)。 第12.7.5節「光標」中顯示了一個示例。 SELECT ... INTO var_list語句不會檢索任何行。

SQLEXCEPTION是不以 開頭的'00','01'或'02'的SQLSTATE值類的縮寫。

所以處理異常,你需要做的只是:

DECLARE EXIT HANDLER FOR SQLSTATE SQLEXCEPTION .....; 

鏈接:

http://dev.mysql.com/doc/refman/5.5/en/signal.html

http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html

+0

我已經盡力了,但錯誤沒有顯示出來。它只顯示空白行。我在'DECLARE EXIT HANDLER FOR SQLEXCEPTION'裏放置了'SHOW ERRORS'語法,這是錯誤的。 – Praditha

+0

我可以只收到郵件嗎? :) – Praditha

+0

你不需要在'DECLARE EXIT HANDLER FOR SQLEXCEPTION'中包含'SHOW ERROR'。 'SHOW ERROR'可以獨立使用。只需將其包含在您的程序中。 – heretolearn