儲存過程 異常處理continue

2021-06-08 17:09:56 字數 834 閱讀 2849

drop table if exists t2;

create table t2

( s1 int, primary key (s1)

) engine=innodb;

delete from t2;

drop procedure if exists p23;

delimiter //

create procedure p23()

begin

declare continue handler

for sqlstate '23000' set @x2 = 1;

set @x = 1;

insert into t2 values (1);

set @x = 2;

insert into t2 values (1);

set @x = 3;

end;//

delimiter ;

call p23();

select @x, @x2;

/*3000sqlstate是更常用的,當外來鍵約束出錯或主鍵約束出錯就被呼叫了

mysql允許兩種處理器,一種是exit處理,我們剛才所用的就是這種。另一種就是我們將要演示的,continue處理,

它跟exit處理類似,不同在於它執行後,原主程式仍然繼續執行

+------+------+

| @x | @x2 |

+------+------+

| 3 | 1 |

+------+------+

*/

mysql儲存過程異常處理

定義條件和處理程式是事先定義程式執行過程中可能遇到的問題。並且可以在處理程式中定 決這些問題的辦法。這種方式可以提前 可能出現的問題,並提出解決辦法。這樣可以增強程式處理問題的能力,避免程式異常停止。mysql中都是通過declare關鍵字來定義條件和處理程式。本小節中將詳細講解如何定義條件和處理程...

ORACLE儲存過程異常處理。

create or replace procedure p tx getfaxdata as v errorcode number 出錯的 v errormsg varchar2 200 錯誤的訊息顯示 v currentuser varchar2 8 當前資料庫使用者 v information ...

mssql儲存過程異常處理

mssql2000和mssql2005以上版本的異常處理語法是不相同的。sql server 2005以上版本支援結構化異常處理,而mssql2000是不支援的。1 先看mssql 2000的異常處理語法 create proc sp mssql2000 titlename nvarchar 128...