drop procedure if exists proc_add_user;
create procedure proc_add_user(username varchar(10), usercount int) # username前缀 usercount后缀编号
begin
declare i int default 1; # 局部变量
declare v_user_id int;
declare v_address_id int;
declare name0 char(5); # 用于字符串拼接
while(i<=usercount) do
if length(i)=2 then
set name0:="000";
elseif length(i)=3 then
set name0:="00";
elseif length(i)=4 then
set name0:="0";
elseif length(i)=5 then
set name0:="";
else
set name0:="0000";
end if;
insert into ecs_users(email,user_name,password) values(concat(username,name0,i,"@ecshop.com"),concat(username,name0,i),md5("123456")); # 创建并插入用户数据
select user_id into v_user_id from ecs_users where user_name=concat(username,name0,i); # 获取插入数据的user_id并赋值给v_user_id
insert into ecs_user_address(user_id,consignee,email,country,province,city,district,address,zipcode,tel) values(v_user_id,concat(username,name0,i),concat(username,name0,i,"@ecshop.com"),1,2,52,0,concat("六合大厦",i,"楼"),123,concat("13800000",i)); # 创建并插入地址数据
select address_id into v_address_id from ecs_user_address where user_id=v_user_id; # 获取address_id并赋值给v_address_id
update ecs_users set address_id=v_address_id where user_id=v_user_id; # 同步更新用户表中的地址id
set i:=i+1; # 步进值
end while;
end;
call proc_add_user("user", 10); # 调用通过参数创建数据
MYSQL创建存储过程并使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 本文介绍基于Microsoft SQL Server软件,实现数据库T-SQL语言程序设计,以及游标的定义、使...
- 前言~ 今天莫名的接到一个任务,需要使用oracle定时任务和oracle存储过程来每日创建一个日志表,由于小...
- 目录 什么是存储过程?[https://www.cnblogs.com/xiongze520/p/14595601...