最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL存储过程的异常处理方法

来源:动视网 责编:小采 时间:2020-11-09 20:57:01
文档

MySQL存储过程的异常处理方法

MySQL存储过程的异常处理方法:本文实例讲述了MySQL存储过程的异常处理方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc -> (p_first_name VARCHAR(30), -> p_l
推荐度:
导读MySQL存储过程的异常处理方法:本文实例讲述了MySQL存储过程的异常处理方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc -> (p_first_name VARCHAR(30), -> p_l


本文实例讲述了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数据库程序设计有所帮助。

您可能感兴趣的文章:

  • mysql5.7.21启动异常的修复方法
  • JDBC连接mysql乱码异常问题处理总结
  • 连接MySQL时出现1449与1045异常解决办法
  • mysql innodb 异常修复经验分享
  • mysql中异常错误ERROR:2002的解决方法
  • MySQL定义异常和异常处理详解
  • linux 后台日志 mysql 错误异常的解释(推荐)
  • mysql存储过程中的异常处理解析
  • MySQL存储过程中一些基本的异常处理教程
  • navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法
  • 文档

    MySQL存储过程的异常处理方法

    MySQL存储过程的异常处理方法:本文实例讲述了MySQL存储过程的异常处理方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc -> (p_first_name VARCHAR(30), -> p_l
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top