MySQL中建立儲存過程示例

2022-05-14 15:34:37 字數 1466 閱讀 8313

在這個示例中需要用到一張名為test_table的表,我們使用show create table test_table檢視表的建立過程:

create table `test_table` (

`id` int(11) default null,

`name` varchar(20) default null,

`age` int(11) default null,

`brief` varchar(100) default null

) engine=innodb default charset=utf8

接下來我們演示以下建立名為test_procedure的表,

我們在建立儲存過程之前要先判斷儲存過程是否存在,若存在,先刪除之:

drop procedure if exists test_procedure;
然後建立儲存過程:

create procedure test_procedure()

begin

declare t_error integer default 0;

declare continue handler for sqlexception set t_error=1;

start transaction;

delete from test_table;

insert into test_table (id,name,age,brief) values

(1, 'zifeiy', 38, 'nothing to do'),

(2, 'balala', 22, 'hello world');

insert into test_table (id,name,age,brief) values

(3, 'hello', 11, 'hello'),

(4, 'haha', 2, 'haha');

if t_error = 1 then

rollback;

else

commit;

end if;

select t_error;

end

然後呼叫1儲存過程:

call test_procedure();
可以看到儲存過程返回的結果:

t_error

0然後通過sql語句select * from test_table檢視目標表中的資料如下:

idname

agebrief

1zifeiy

38nothing to do

2balala

22hello world

3hello

11hello

4haha

2haha

mysql儲存過程示例

create procedure pro cancel order in orderid int in userid int out resultstatus int comment 取消商品訂單 begin 引數說明 orderid 訂單id extras 擴充套件記錄 異常處理 declare ...

MySQL儲存過程示例

mysql儲存過程 自定義結束符 delimiter 如果存在同名的儲存過程就刪除 drop procedure if exists praddblack 建立儲存過程 create procedure praddblack in n int begin while n 999 do insert ...

mysql 儲存過程示例

在mysql的test庫中執行如下sql table structure for user drop table if exists user create table user id int 11 unsigned not null auto increment,tinyint 1 not nul...