欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL存儲過程的異常處理方法

 更新時間:2015年07月20日 17:39:54   作者:鑒客  
這篇文章主要介紹了MySQL存儲過程的異常處理方法,可實現(xiàn)有效調試MySQL存儲過程處理結果的功能,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了MySQL存儲過程的異常處理方法。分享給大家供大家參考。具體如下:

mysql>
mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc
  ->   (p_first_name     VARCHAR(30),
  ->    p_last_name      VARCHAR(30),
  ->    p_city        VARCHAR(30),
  ->    p_description     VARCHAR(30),
  ->    OUT p_sqlcode     INT,
  ->    OUT p_status_message VARCHAR(100))
  -> BEGIN
  ->
  -> /* START Declare Conditions */
  ->
  ->  DECLARE duplicate_key CONDITION FOR 1062;
  ->  DECLARE foreign_key_violated CONDITION FOR 1216;
  ->
  -> /* END Declare Conditions */
  ->
  -> /* START Declare variables and cursors */
  ->
  ->   DECLARE l_manager_id    INT;
  ->
  ->   DECLARE csr_mgr_id CURSOR FOR
  ->    SELECT id
  ->     FROM employee
  ->    WHERE first_name=p_first_name
  ->       AND last_name=p_last_name;
  ->
  -> /* END Declare variables and cursors */
  ->
  -> /* START Declare Exception Handlers */
  ->
  ->  DECLARE CONTINUE HANDLER FOR duplicate_key
  ->   BEGIN
  ->    SET p_sqlcode=1052;
  ->    SET p_status_message='Duplicate key error';
  ->   END;
  ->
  ->  DECLARE CONTINUE HANDLER FOR foreign_key_violated
  ->   BEGIN
  ->    SET p_sqlcode=1216;
  ->    SET p_status_message='Foreign key violated';
  ->   END;
  ->
  ->  DECLARE CONTINUE HANDLER FOR not FOUND
  ->   BEGIN
  ->    SET p_sqlcode=1329;
  ->    SET p_status_message='No record found';
  ->   END;
  ->
  -> /* END Declare Exception Handlers */
  ->
  -> /* START Execution */
  ->
  ->  SET p_sqlcode=0;
  ->  OPEN csr_mgr_id;
  ->  FETCH csr_mgr_id INTO l_manager_id;
  ->
  ->  IF p_sqlcode<>0 THEN      /* Failed to get manager id*/
  ->   SET p_status_message=CONCAT(p_status_message,' when fetching manager id');
  ->  ELSE
  ->   INSERT INTO employee (first_name,id,city)
  ->   VALUES(p_first_name,l_manager_id,p_city);
  ->
  ->   IF p_sqlcode<>0 THEN   /* Failed to insert new department */
  ->    SET p_status_message=CONCAT(p_status_message,
  ->              ' when inserting new department');
  ->   END IF;
  ->  END IF;
  ->
  ->  CLOSE csr_mgr_id;
  ->
  -> /* END Execution */
  ->
  -> END$$
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> delimiter ;
mysql> set @myCode = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> set @myMessage = 0;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> call myProc('Jason','Martin','New City','New Description',@myCode,@myMessage);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> select @myCode, @myMessage;
+---------+------------+
| @myCode | @myMessage |
+---------+------------+
| 0    | NULL    |
+---------+------------+
1 row in set (0.00 sec)
mysql>
mysql> drop procedure myProc;
Query OK, 0 rows affected (0.00 sec)

希望本文所述對大家的MySQL數(shù)據(jù)庫程序設計有所幫助。

相關文章

  • mysql存儲過程之返回多個值的方法示例

    mysql存儲過程之返回多個值的方法示例

    這篇文章主要介紹了mysql存儲過程之返回多個值的方法,結合實例形式分析了mysql存儲過程返回多個值的實現(xiàn)方法與PHP調用技巧,需要的朋友可以參考下
    2019-12-12
  • 通過兩種方式增加從庫——不停止mysql服務

    通過兩種方式增加從庫——不停止mysql服務

    現(xiàn)在生產(chǎn)環(huán)境MySQL數(shù)據(jù)庫是一主一從,由于業(yè)務量訪問不斷增大,故再增加一臺從庫。前提是不能影響線上業(yè)務使用,也就是說不能重啟MySQL服務,為了避免出現(xiàn)其他情況,選擇在網(wǎng)站訪問量低峰期時間段操作
    2015-11-11
  • CentOS7安裝MySQL 8.0.26的過程

    CentOS7安裝MySQL 8.0.26的過程

    這篇文章主要介紹了CentOS 7安裝MySQL 8.0.26的過程,通過輸入一些命令完成對mysql的初始化及相關配置,具體操作方法跟隨小編一起看看吧
    2021-09-09
  • sql獲取存儲過程返回數(shù)據(jù)過程解析

    sql獲取存儲過程返回數(shù)據(jù)過程解析

    這篇文章主要介紹了sql獲取存儲過程返回數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • MySQL使用innobackupex備份連接服務器失敗的解決方法

    MySQL使用innobackupex備份連接服務器失敗的解決方法

    這篇文章主要為大家詳細介紹了MySQL使用innobackupex備份連接服務器失敗的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 查看mysql語句運行時間的2種方法

    查看mysql語句運行時間的2種方法

    網(wǎng)站運行很慢的時候,我就特別起知道為什么這么慢,所以我查啊查,數(shù)據(jù)庫絕對是很重要的一部分,里面運行的sql是絕對不能放過的。平時做項目的時候,我也會注意sql語句的書寫,寫出一些高效的sql來,所以我會經(jīng)常測試自己寫的sql語句。我把我知道的二個方法,總結一下發(fā)出來
    2014-01-01
  • 解決MYSQL連接端口被占引入文件路徑錯誤的問題

    解決MYSQL連接端口被占引入文件路徑錯誤的問題

    下面小編就為大家?guī)硪黄鉀QMYSQL連接端口被占引入文件路徑錯誤的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 關于Mysql通用查詢日志和慢查詢日志分析

    關于Mysql通用查詢日志和慢查詢日志分析

    MySQL中的日志包括:錯誤日志、二進制日志、通用查詢日志、慢查詢日志等等。這里主要介紹下比較常用的兩個功能:通用查詢日志和慢查詢日志,需要的朋友可以參考下
    2018-10-10
  • MySQL中Distinct和Group By語句的基本使用教程

    MySQL中Distinct和Group By語句的基本使用教程

    這篇文章主要介紹了MySQL中Distinct和Group By語句的基本使用教程,這里主要是針對查詢結果去重的用法,需要的朋友可以參考下
    2015-12-12
  • mysql 8.0.12安裝配置方法圖文教程(Windows版)

    mysql 8.0.12安裝配置方法圖文教程(Windows版)

    這篇文章主要為大家詳細介紹了Windows下mysql 8.0.12安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論