MySQL遊標和異常處理
MySQL儲存過程的declare宣告變數必須放在最前面
複雜異常處理
第一次正常,第二次返回-1
遊標.
恩..會寫過程了...
這回像DBA了..
複雜異常處理
- drop table if exists user;
- CREATE TABLE `user` (
- `userid` bigint(20) NOT NULL DEFAULT '0',
- `balance` int(11) DEFAULT NULL,
- `checksum` varchar(32) DEFAULT NULL,
- PRIMARY KEY (`userid`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- drop procedure if exists t;
- delimiter $$
- create procedure t(pUserid bigint,pBalance int,pChecksum varchar(32))
- begin
- declare vResult smallint default 0;
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- begin
- rollback;
- set vResult:=-1;
- select vResult;
- end;
- insert into user values(pUserid,pBalance,pChecksum);
- select * from user;
- end $$
- delimiter ;
- call t(1,1100,'checksum');
- call t(1,1100,'checksum');
第一次正常,第二次返回-1
遊標.
- drop procedure if exists t2;
- delimiter $$
- create procedure t2()
- begin
- declare done int default 0;
- declare vResult int default 0;
- declare vUserID bigint;
- declare vBalance int;
- declare pChecksum varchar(32);
- declare cur_test CURSOR for select * from user ;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- open cur_test;
- repeat
- fetch cur_test into vUserID, vBalance,pChecksum;
- if done !=1 then
- set vResult:=vResult+vBalance;
- end if;
- until done end repeat;
- close cur_test;
- select vResult;
- end$$
- delimiter ;
- call t2();
恩..會寫過程了...
這回像DBA了..
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2120167/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- springboot下新增全域性異常處理和自定義異常處理Spring Boot
- 約束和異常處理
- 迭代器和異常處理
- 異常篇——異常處理
- Python錯誤處理和異常處理(二)Python
- 異常處理
- Java中如何處理空指標異常Java指標
- Java 異常處理:使用和思考Java
- JSP 異常處理如何處理?JS
- 異常-throws的方式處理異常
- React 異常處理React
- JS異常處理JS
- oracle異常處理Oracle
- Python——異常處理Python
- Python異常處理Python
- ThinkPHP 異常處理PHP
- JavaScript 異常處理JavaScript
- JAVA 異常處理Java
- 異常的處理
- golang - 異常處理Golang
- 異常處理2
- 異常處理1
- Java 異常處理Java
- Abp 異常處理
- JAVA異常處理Java
- 08、異常處理
- SpringMVC異常處理SpringMVC
- C++錯誤和異常處理C++
- 異常處理機制(二)之異常處理與捕獲
- MySQL儲存過程的異常處理方法MySql儲存過程
- Java 異常表與異常處理原理Java
- restframework 異常處理及自定義異常RESTFramework
- NodeJS之異常處理NodeJS
- JAVA_異常處理Java
- React Native 異常處理React Native
- Spring Boot 異常處理Spring Boot
- PHP 核心 - 異常處理PHP
- GRpc異常處理FilterRPCFilter
- python異常捕捉處理Python