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儲存過程
- python中如何捕獲異常Python
- 捕獲 React 異常React
- 異常及捕獲
- python異常捕獲Python
- mysql 儲存過程MySql儲存過程
- Task異常捕獲的方式
- Mysql 儲存過程的使用MySql儲存過程
- 在 C++ 中捕獲 Python 異常C++Python
- android 異常捕獲-UncaughtExceptionHandlerAndroidException
- MySQL儲存過程中如何使用ROLLBACKMySql儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- MySQL之儲存過程MySql儲存過程
- MySQL---------儲存過程MySql儲存過程
- mysql儲存過程整理MySql儲存過程
- 【求助】如何捕獲 pytest parametrize 中的 timeout 異常
- 前端開發中的Error以及異常捕獲前端Error
- Auth 授權的異常捕獲
- mysql儲存過程的引數MySql儲存過程
- pb呼叫ole異常捕獲
- 記錄Javascript 異常捕獲JavaScript
- wpf 捕獲全域性異常
- mysql如何呼叫儲存過程MySql儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- Sqlserver中的儲存過程SQLServer儲存過程
- Mysql 5.7儲存過程的學習MySql儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- SpringBoot之全域性捕獲異常Spring Boot
- 10. 異常捕獲、生成式
- JS 使用try catch捕獲異常JS
- MySQL儲存過程 (即函式)MySql儲存過程函式
- mySql 儲存過程與函式MySql儲存過程函式
- Laravel 中使用 MySQL 儲存過程LaravelMySql儲存過程
- MySql資料庫——儲存過程MySql資料庫儲存過程
- MySQL 儲存過程和函式MySql儲存過程函式
- MySQL儲存過程和函式MySql儲存過程函式
- 前端JavaScript 常見的報錯及異常捕獲前端JavaScript