2015-04-23 81 views
0

我想捕獲在插入或更新mysql存儲過程中的數據期間發生的錯誤。在MySql中插入/更新時出錯

當在數據庫中更新數據時,可以檢查修改的行數是否可以檢查更新或插入是否成功發生,但即使受影響的行是0(相同的數據再次更新),也可能不是錯誤條件。

我想捕獲只有插入/更新失敗。 請按同樣

我的SP分享一些光線類似下面

DELIMITER $$ 

    CREATE PROCEDURE `sp_test`(
      IN param1 VARCHAR(50), 
      IN param2 VARCHAR(50) 
     ) 
     BEGIN 
      IF updateCount > 0 THEN 
       UPDATE tbname SET val = param1 where con = param2; 
      ELSE 
       INSERT INTO tbname SET val = param1,con = param2; 
      END IF; 

     END$$ 

DELIMITER ; 

我要跟蹤的報表是否成功,或不執行。

回答

-1

我增加了一個異常塊象下面,

DECLARE EXIT HANDLER FOR SQLEXCEPTION 
BEGIN 
    GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, 
    @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT; 
    SET @full_error = CONCAT("ERROR ", @errno, " (", @sqlstate, "): ", @text); 
    SELECT @full_error; 
END; 

不,我得到的錯誤。我認爲這對我的情況會很好。如果有人找到更好的答案,請在這裏發帖。

+2

添加到您的問題,它不是一個答案。 –