热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL存储过程的异常处理

无详细内容异常处理MySQLmysqlmysqldelimiter$$mysqlmysqlCREATEPROCEDUREmyProc-(p_first_nameVARCHAR(30

无详细内容 异常处理 MySQL mysqlmysql delimiter $$mysqlmysql 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 VARCH

异常处理 MySQL

    –>
  • $velocityCount
  • –>

    –>

    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;    -

    本文来源gao!daima.com搞$代!码#网#

    > -> IF p_sqlcode0 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_sqlcode0 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)


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 一基础代码检查    检查以bm_开头的系统初始化编码表是否有空值。与业务系统相关的编码项不能存在空值,会导致系统业务无法办理。为初始化数据表、在做测试数据和正式上线前检查。上线 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
author-avatar
嘉洲仔-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有