2011-10-24 180 views
9

當發生SQLEXCEPTION時,如何在MySQL存儲過程中獲取錯誤文本?在MySQL程序中獲取SQLEXCEPTION消息

我需要的是這樣的:

DECLARE EXIT HANDLER FOR SQLEXCEPTION  
BEGIN 
    INSERT INTO my_log (error_message) 
    VALUES (SQLEXCEPTION.message); 
END; 
+0

哪個版本的MySQL您使用的? – Nodlehs

+0

5.1.49 我發現不久之前增加了新功能GET DIAGNOSTICS,它解決了我的問題。 – shurik2533

+0

但它被添加到5.6.4 ...無論如何感謝您的答案! – miherrma

回答

4
DECLARE EXIT HANDLER FOR SQLEXCEPTION  
BEGIN 

GET DIAGNOSTICS CONDITION 1 
    @p2 = MESSAGE_TEXT; 

    INSERT INTO my_log (error_message) 
    SELECT @p2; 
END; 
+3

https://dev.mysql.com/doc/refman/5.7/en/get-diagnostics.html –