Mysql存储过程代码例子详解数据库

--定义一个新的命令结束符号,默认的是以;为结束标记 
--同样的可以通过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);

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/6648.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论