mysql 儲存過程示例

2021-09-30 16:30:07 字數 1915 閱讀 4377

在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 null comment '1--男,2-女',

`name` varchar(255) not null,

primary key (`id`)

) engine=innodb auto_increment=4 default charset=utf8;

-- ----------------------------

-- records of user

-- ----------------------------

insert into `user` values ('1', '1', '王士大');

insert into `user` values ('2', '2', '李莉');

insert into `user` values ('3', '1', '趙東方');

-- ----------------------------

-- procedure structure for getresultfromuser

-- ----------------------------

drop procedure if exists `getresultfromuser`;

delimiter ;;

create definer=`root`@`localhost` procedure `getresultfromuser`(out result varchar(128))

begin

-- 游標所使用變數需要在定義游標之前申明

declare id int(11);

declare name varchar(20);

declare *** tinyint(1);

declare temp varchar(100) default "";

-- 遍歷資料結束標誌 注意位置順序

declare done int default false;

-- 注意用別名 因為id在上面已經有定義所以需要使用表的別名區別

declare cur_test cursor for select t.id,t.name,t.*** from user t;

-- 將結束標誌繫結到游標

declare continue handler for not found set done = true;

open cur_test;

while done <> 1 do # 迴圈讀取游標資料

fetch cur_test into id, name,***;

if done <> 1 then

select concat(temp,id,'==') into temp;

end if;

end while;

close cur_test;

select temp into result;

select result;

end;;delimiter ;

使用如下語句進行測試:

call getresultfromuser(@result);

執行結果如下:

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儲存過程示例delimiter use mall system 刪除儲存過程 drop procedure ifexists get statistics 建立儲存過程 create definer root localhost procedure get statistics in sh...