IT虾米网

Mysql存储过程代码例子详解

luoye 2018年06月24日 数据库 560 0
--定义一个新的命令结束符号,默认的是以;为结束标记 
--同样的可以通过delimiter ;再设置;为结束标记 
delimiter $$ 
--删除函数rand_string 
drop function rand_string $$ 
--创建函数rand_string(n):随机产生n个字符组成的字符串 
create function rand_string(n INT) 
returns varchar(255) 
begin 
 declare chars_str varchar(100)default 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
 declare return_str varchar(255) default ''; 
 declare i int default 0; 
 while i < n do 
  --concat('a','b'):ab 
  --substring(str,pos,len):得到字符串str从pos位置开始长度为len的字符串 
  --rand():得到一个[0,1]的随机小数 
  set return_str = concat(return_str,substring(chars_str,floor(1 + rand() * 52),1)); 
  set i = i + 1; 
 end while; 
 return return_str; 
end $$ 
 
delimiter ;


--修改语句定界符为$$ 
delimiter $$ 
--自定义函数rand_num():随机生成一个整数 
create function rand_num() 
returns int(5) 
begin 
 declare i int defaule 0; 
 set i = floor(10 + rand() * 50); 
 return i; 
end $$ 
--修改语句定界符为; 
delimiter ; 
 
--修改语句定界符为$$ 
delimiter $$ 
--创建一个存储过程 
create procedure insert_emp(in start int(10), in max_num int(10)) 
begin 
 declare i int default 0; 
 set autocommit = 0; 
 repeat 
  set i = i + 1; 
  insert into emp values(start + i, rand_string(6), 'SALESMAN'.0001,curdate(), 2000); 
  until i = max_num 
 end repeat; 
 commit; 
end $$ 
--修改语句定界符为; 
delimiter ; 
--调用存储过程 
call inert_emp(100001, 4800000);



发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

备份压缩mysql 数据库详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。