mysql异常处理

CREATE DEFINER=`root`@`localhost` PROCEDURE `pr_exception`(i_date varchar(10),out o_error_code  varchar(200),out o_error_msg  varchar(200))
BEGIN

-- 自定义异常
DECLARE my_error CONDITION FOR SQLSTATE ‘45000‘;
 DECLARE EXIT HANDLER FOR my_error
 begin
 set o_error_code:=-100,o_error_msg:=‘自定义错误信息‘;
 ROLLBACK ;
 end;

-- 定义异常
 DECLARE EXIT HANDLER for SQLEXCEPTION
  BEGIN
      GET DIAGNOSTICS CONDITION 1
        o_error_code = RETURNED_SQLSTATE, o_error_msg = MESSAGE_TEXT;
        rollback; -- 回滚
    END;

 START TRANSACTION; -- 开启事务

if i_date =‘0‘ then
SIGNAL my_error; -- 触发自定义异常
end if;

insert into acc_cellstk (fundid_) values(1);  -- 正确sql
insert into acc_cellstk (fundid_) values(‘s‘);  -- 错误sql 引发异常

commit;
END

  

时间: 2024-08-27 11:44:08

mysql异常处理的相关文章

mysql 异常处理

--该文章内容通过网络搜索组合, mysql 异常,可以自定义异常,再应用.也可使用系统默认的异常,捕获应用. 一.异常定义: DECLARE condition_name CONDITION FOR [condition_type]; condition_name参数表示异常的名称: condition_type参数异常类型 condition_type由SQLSTATE [VALUE] sqlstate_value|mysql_error_code组成: sqlstate_value和mys

oracle 和mysql之间的数据类型对比

编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型:MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时

MySQL学习入门安装和启动及常见问题解决方法(一)

1.下载MySQL 官网地址:https://www.mysql.com/downloads/ 2.个人学习使用,只有下面这个是免费的 3.下载之后解压到目录中,并加入环境变量,如下 创建MYSQL_HOME 添加到path路径中 4.进入DOS环境启动mysql,win+R快捷键启动窗口输入cmd 进入MySQL是需要账号密码进行登陆的,账号密码默认都是"root" -u后面的root就是账号,输入-p后需要回车,提示输入密码后,输入root回车 5.启动mysql异常处理 5.1.

存储过程&Function

存储过程&Function 编号 类别 ORACLE MYSQL 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC(   id_fac_cd  IN ES_FAC_UNIT.FAC_CD%TYPE) is DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`;create procedure P_ADD_FAC(       id_fac_cd  varchar(100)) 1.在创建存储过程时如果存在

vagrant+docker:开发环境快速搭建

快速搭建以下的环境: 目录 VirtualBox Vagrant docker MySQL redis VirtualBox VM环境 Vagrant 成品镜像 $ vagrant box add centos-7 ./centos-7.0-x86_64.box $ vagrant init centos-7 $ vagrant up $ vagrant ssh 修改端口 管理员 $ su root # 密码 vagrant $ whoami 入门案例:https://www.cnblogs.c

MySQL存储过程的“异常处理”

Q:何为异常? A:程序在执行过程中有可能出错,运行时错误叫做异常. 默认情况下,当存储过程运行出错时,过程会立即终止,并打印系统错误消息. 实验环境: mysql> use TENNIS Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> 

关于MySQL的异常处理 Can't connect to MySQL server on localhost (10061)解决方法

首先检查MySQL 服务没有启动>如果没有启动,则要启动这个服务. 昨天,重起服务器后出现MySQL 'localhost' (10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法.大体如下: 解决办法: 第一步 删除c:\windows\下面的my.ini 第二步 打开c:\mysql\bin\winmysqladmin.exe 输入用户名 和密码 第三步 在dos下 输入 mysqld-nt -remove 删除服

Mysql存储过程(四)——异常处理

http://blog.csdn.net/crazylaa/article/details/5368421 有时候,不希望存储过程抛出错误中止执行,而是希望返回一个错误码. MySQL 支持异常处理,通过定义 CONTINUE/EXIT 异常处理的 HANDLER 来捕获 SQLWARNING/NOT FOUND/SQLEXCEPTION (警告 /无数据 / 其他异常).其中, FOR 后面可以改为 SQLWARNING, NOT FOUND, SQLEXCEPTION 来指示所有异常都处理,

mysql存储过程之异常处理篇

mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下: DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement handler_type: CONTINUE | EXIT condition_value: SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPT