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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL異常處理MySql
- MySQL定義異常和異常處理詳解MySql
- MySQL儲存過程-->通過遊標遍歷和異常處理遷移資料到歷史表MySql儲存過程
- oracle 儲存過程遊標中處理並記錄異常Oracle儲存過程
- PHP錯誤處理和異常處理PHP
- 約束和異常處理
- 迭代器和異常處理
- 異常篇——異常處理
- MySQL 遊標(PREPARE預處理語句)MySql
- 異常處理
- MySQL Slave異常關機的處理MySql
- Java中如何處理空指標異常Java指標
- springboot下新增全域性異常處理和自定義異常處理Spring Boot
- Java 異常處理:使用和思考Java
- Java異常處理和設計Java
- Python錯誤處理和異常處理(二)Python
- 異常-throws的方式處理異常
- 異常處理與異常函式函式
- JavaScript 異常處理JavaScript
- ThinkPHP 異常處理PHP
- React 異常處理React
- 08、異常處理
- JAVA 異常處理Java
- JAVA異常處理Java
- Abp 異常處理
- oracle異常處理Oracle
- PowerShell 異常處理
- plsql異常處理SQL
- Swift 異常處理Swift
- JS異常處理JS
- app異常處理APP
- Oracle 處理異常Oracle
- 異常處理 (轉)
- golang - 異常處理Golang
- 異常處理2
- 異常處理1
- 異常的處理
- Java 異常處理Java