mysql数据库异常处理代码实例
来源:互联网 发布:linux home 编辑:程序博客网 时间:2024/05/22 07:53
和C#中处理异常的方法很相像,mysql也有它自己处理异常的方法,本文列出了mysql处理实例的代码,通过代码我们来了解mysql数据库处理异常的原理和方法。
具体的实例代码如下:
- DROP PROCEDURE IF EXISTS sp_call_jobs;
- CREATE PROCEDURE sp_call_jobs()
- NOT DETERMINISTIC
- SQL SECURITY DEFINER
- COMMENT ''
- BEGIN
- declare _row,_err,_count int default 0;
- DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
- while _row<3 DO
- START TRANSACTION;
- insert into t1(cond_val)values(null);
- COMMIT;
- if _err=1 then
- set _count_count=_count+1;
- end if;
- set _row_row=_row+1;
- end while;
- select _count;
- END;
语句:
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
作用是当遇到SQLEXCEPTION,SQLWARNING,NOT FOUND 错误时,设置_err=1并执行CONTINUE操作,即继续执行后面的语句。
而且在执行可能出错的语句的时候我们用事务语句:START TRANSACTION; …… COMMIT; 可以保证完整性。
DELIMITER $$
DROP PROCEDURE IF EXISTS `vm`.`sp_DelItem`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_DelItem`(IN nType int,IN nLsh int,IN nChanNo int,OUT nRetNum int)
BEGIN
declare _err int default 0;
declare nChanNum int;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
set nRetNum = 0;
START TRANSACTION;
set nChanNum = 0;
if nType = 0 then
delete from USERRIGHT where USERLSH in (select LSH from USR where REGIONALISMLSH=nLsh);
delete from USR where REGIONALISMLSH = nLsh;
delete from REGIONALISM where LSH = nLsh;
end if;
if (nType = 1) then
delete from MEDIASRV where LSH = nLsh;
end if;
if (nType = 2) then
delete from CHANNEL where NETDVRLSH = nLsh;
delete from USERRIGHT where NETDVRLSH = nLsh;
delete from NETDVR where LSH =nLsh;
end if;
if (nType = 3) then
delete from USERRIGHT where CHANNO = nChanNo and NETDVRLSH = nLsh;
update NETDVR set CHANNUM = CHANNUM - 1 where LSH = nLsh;
delete from CHANNEL where CHANNO = nChanNo and NETDVRLSH = nLsh;
end if;
if (nType = 4) then
delete from USERRIGHT where USERLSH = nLsh;
delete from USR where LSH = nLsh;
end if;
COMMIT;
if _err=1 then
set nRetNum = 1;
Rollback;
end if;
select nRetNum;
END$$
DELIMITER ;
- mysql数据库异常处理代码实例
- Windows异常处理实例代码
- c# 异常处理 经典代码实例
- jsp连接mysql数据库实例代码
- C#操作mysql数据库的代码实例
- mysql 连接数据库实例java代码
- python 使用MySQL数据库的实例代码
- MySql存储过程的异常处理理论及实例
- java异常处理实例
- C++异常处理实例
- __try__finally异常处理实例
- 实例简介异常处理
- c#异常处理实例
- stuts异常处理实例
- 异常处理实例
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android中的Handler机制
- std::regex用法,简单例子
- 垃圾回收机制
- 【教你改变输入法到位置】
- CMake的交叉编译问题(Linux x86 - Linux arm11)
- mysql数据库异常处理代码实例
- poj2109
- UIActivityIndicatorView的详细使用
- linux c 读写超过2G的大文件解决办法
- JVM垃圾回收器
- platform设备驱动全透析
- log4j配置与使用
- Data Structures (Weiss) Chapter 12: Splay Tree 伸展树
- 对象内存分配