MySQL之條件的定義和處理

2021-08-28 13:57:17 字數 1509 閱讀 5921

(1)條件是用來定義在處理過程中遇到問題時相應的處理步驟。

(2)條件定義的語法:

declare  condition_name  condition  for  codition_value

condition_value:

sqlstate [value] sqlstate_value

| mysql_error_code

(3) 條件處理的語法:

declare  handler_type  handler  for  condition_value [,...] sp_statement

handler_type:

continue  |   exit  |  undo  

conditon_value:

sqlstate  [value] sqlstate_value

|  condition_name

|  sqlwaring

|  not  found

| sqlexception

| mysql_error_code

示例:下面對比有條件處理和沒條件處理

沒條件處理:(已經插入主鍵id 1~200的記錄)

create  procedure  actor_insert()

begin 

set   @x=1;

insert  into  actor(actor_id, first_name,last_name) values(201 , 'test', '201');

set  @x=2;

insert  into actor(actor_id,first_name,last_name) values(1,'test',『1』);

set @x=3;

end ;

call  actor_insert() 

增加了條件語句,用於處理主鍵重異常

create procedure  actor_insert()

begin

declare  continue  handler  for   sqlstate  '23000' set @x2=1;

set  @x=1;

insert  into  actor(actor_id,first_name,last_name)  values(201,'test','201');

set   @x=2;

insert  into actor(actor_id,first_name,last_name)  values(1,'test','1');

set @x=3;

end ; 

注釋:呼叫條件處理的過程,再遇到主鍵重的錯誤時,會按照定義的處理方式進行處理。

handler_type: 支援continue(繼續執行)和exit(執行終止)

continue_value的值分為:自定義(declare 宣告變數);sqldata 值 ; mysql-error-code ; sqlwarning ; not found ; sqlexception

9 MySQL定義條件和處理程式

在程式的執行過程中可能會遇到問題,此時我們可以通過定義條件和處理程式來事先定義這些問題。定義條件是指事先定義程式執行過程中遇到的問題,處理程式定義了在遇到這些問題時應當採取的處理方式和解決辦法,保證儲存過程和函式在遇到警告或錯誤時能繼續執行,從而增強程式處理問題的能力,避免程式出現異常被停止執行。下...

mysql定義條件 MySQL定義條件

在開發過程中,經常需要對特定的條件進行處理,這些條件可以聯絡到錯誤以及子程式中的一般流程控制 定義條件 是指事先定義,程式執行過程中遇到的問題 處理程式定義了在遇到這些問題時,應當採取的處理方式,並且,保證儲存過程在遇到警告或錯誤時,能繼續執行 定義條件 在編寫儲存過程中,使用declare語句 語...

MySQL資料庫 定義條件和處理程式

declare 條件名稱 condition for 該引數表示條件的型別 mysql error code 條件型別 定義乙個 error 1148 42000 錯誤,名稱為command not allowed 方法一 使用sqlstate value declare command not a...