最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql存储过程事例

来源:动视网 责编:小采 时间:2020-11-09 13:29:05
文档

mysql存储过程事例

mysql存储过程事例:mysql 存储过程例子 (1)循环遍历值 drop procedure if exists doit ;/* *delimiter表示以//结束编译 * */delimiter //create procedure doit (in parameter integer)begindeclare v1 int ;set v1 = para
推荐度:
导读mysql存储过程事例:mysql 存储过程例子 (1)循环遍历值 drop procedure if exists doit ;/* *delimiter表示以//结束编译 * */delimiter //create procedure doit (in parameter integer)begindeclare v1 int ;set v1 = para


mysql 存储过程例子 (1)循环遍历值 drop procedure if exists doit ;/* *delimiter表示以//结束编译 * */delimiter //create procedure doit (in parameter integer)begindeclare v1 int ;set v1 = parameter ;set parameter = 90 ;while v10 doselect now(

mysql 存储过程例子
(1)循环遍历值

drop procedure if exists doit ;
/*
 *delimiter表示以//结束编译
 *
 */
delimiter //

create procedure doit (in parameter integer)
begin
declare v1 int ;
set v1 = parameter ;
set parameter = 90 ;
while v1>0 do
	select now();
	set v1 = v1 - 1 ;
end while ;

select parameter ;
end;
//
delimiter ;

(2)动态执行sql并注入参数

drop procedure if exists test_insert ;
-- delimiter表示以//结束编译
delimiter //

create procedure test_insert(in num int) 
 begin
 -- 使用变量时不能使用declare 只能用set @id = .. 模式
 -- declare v1 int(11);
 set @v1=num ;
 -- declare sql varchar(200);
 -- declare name varchar(20);
 set @name='wxlan' ;
 set @sql='insert into test values(?,?,now())' ;
 prepare state_ from @sql ;
 while @v1 > 0 do
	execute state_ using @v1,@name ;
	set @v1 = @v1 -1 ;
 end while ;
 end;
 //
 delimiter ;

(3)游标是使用

drop procedure if exists test_cursor ;
-- delimiter表示以//结束编译
delimiter //

create procedure test_cursor(out result varchar(128)) 
 begin
 -- 游标所使用变量需要在定义游标之前申明
 declare id int(11);
 declare name varchar(20);
 -- 遍历数据结束标志 注意位置顺序
 DECLARE done INT DEFAULT FALSE;
 -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别
 declare cur_test CURSOR for select t.id,t.name from test t;
 -- 将结束标志绑定到游标 
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
 open cur_test;
 repeat
 fetch cur_test into id, name;
	 select id ;
	 -- concat_ws函数用逗号后面的参数隔开 concat_ws(',','12','33','332') --> 12,33,332
 select concat_ws(',',result,id,name) into result ;
 until done
	 end repeat;
 close cur_test; 
 
 select result ;
 end;
 //
 delimiter ;

文档

mysql存储过程事例

mysql存储过程事例:mysql 存储过程例子 (1)循环遍历值 drop procedure if exists doit ;/* *delimiter表示以//结束编译 * */delimiter //create procedure doit (in parameter integer)begindeclare v1 int ;set v1 = para
推荐度:
标签: 过程 例子 存储
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top