MySQL儲存過程中捕獲異常的方法
DECLARE處理程式的使用:
其中,
handler_type的取值範圍:CONTINUE | EXIT | UNDO
condition_value的取值範圍:SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code
這個語句指定每個可以處理一個或多個條件的處理程式。如果產生一個或多個條件,指定的語句被執行。
對一個CONTINUE處理程式,當前子程式的執行在執行處理程式語句之後繼續。
對於EXIT處理程式,當前BEGIN...END複合語句的執行被終止。
UNDO 處理程式型別語句還不被支援。
· SQLWARNING是對所有以01開頭的SQLSTATE程式碼的速記。
· NOT FOUND是對所有以02開頭的SQLSTATE程式碼的速記。
· SQLEXCEPTION是對所有沒有被SQLWARNING或NOT FOUND捕獲的SQLSTATE程式碼的速記。
注:除了SQLSTATE值,MySQL錯誤程式碼也不被支援。
例:
- delimiter $$
- CREATE TABLE `_t1` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `val1` varchar(20) DEFAULT NULL,
- `val2` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=latin1$$
- DELIMITER $$
- CREATE DEFINER=`abandonship`@`%` PROCEDURE `P_TestException`()
- BEGIN
- declare _var,_err int default 0;
- declare continue handler for sqlexception, sqlwarning, not found set _err=1;
- insert into _t1(val1, val2) value(2012,'abandonship');
- if _err=1 then
- set _var = 2;
- end if;
- select case when _var = 2 then '出錯了' else _var end;
- END
呼叫該儲存過程將返回:出錯了
相關文章
- 儲存過程——異常捕獲&列印異常資訊儲存過程
- MySQL儲存過程的異常處理方法MySql儲存過程
- [MySQL光速入門]017 儲存過程中的"異常處理"MySql儲存過程
- MySQL 儲存過程中事務sql異常回滾MySql儲存過程
- MySQL 儲存過程定義條件和異常處理MySql儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- python中如何捕獲異常Python
- 捕獲 React 異常React
- iOS異常捕獲iOS
- mysql的儲存過程MySql儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- oracle 儲存過程遊標中處理並記錄異常Oracle儲存過程
- Mysql 儲存過程MySql儲存過程
- python異常捕獲Python
- 前端開發中的Error以及異常捕獲前端Error
- MySql儲存過程中limit傳參MySql儲存過程MIT
- 在 C++ 中捕獲 Python 異常C++Python
- Mysql 儲存過程的使用MySql儲存過程
- mysql儲存過程的修改MySql儲存過程
- Auth 授權的異常捕獲
- 異常的捕獲及處理
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式
- MySQL 儲存過程空結果集錯誤Error 1329 No data 的異常處理MySql儲存過程Error
- mysql儲存過程整理MySql儲存過程
- MySQL之儲存過程MySql儲存過程
- [MYSQL -23儲存過程]MySql儲存過程
- MYSQL儲存過程管理MySql儲存過程
- mysql儲存過程例子MySql儲存過程
- android 異常捕獲-UncaughtExceptionHandlerAndroidException
- 記錄Javascript 異常捕獲JavaScript
- PHP使用trycatch,捕獲異常PHP
- 【筆記】forall 異常捕獲筆記
- 前端異常捕獲與上報前端
- PLSQL宣告部分異常捕獲SQL
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- mysql儲存過程的引數MySql儲存過程