十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
declare storeId varchar(10);
创新互联服务项目包括通河网站建设、通河网站制作、通河网页制作以及通河网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,通河网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到通河省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
在存储过程中创建游标,这个游标里面存了你所有要循环的数据,集合:
declare diy_cursor cursor for
select store_id from t_b_store;
open diy_cursor;--打开游标
diy_loop:loop ---这里开始循环
FETCH diy_cursor into storeId; --提取本次循环的数据,保存在storeId中
if done = 1 then --done是在存储过程开始的时候定义的一个整形变量
leave diy_loop;---如果游标中的数据提取完毕,就自动跳出这个循环end if;
----在这里用你循环取到的storeId做你想做的事情,就是写你的sql啦---
end loop; --循环结束
close diy_loop; --关闭游标
一条insert语句批量插入多条记录
常见的insert语句,向数据库中,一条语句只能插入一条数据:
insert into persons
(id_p, lastname , firstName, city )
values(204,'haha' , 'deng' , 'shenzhen');
(如上,仅插入了一条记录)
怎样一次insert插入多条记录呢?
示例:
insert into persons
(id_p, lastname , firstName, city )
values
(200,'haha' , 'deng' , 'shenzhen'),
(201,'haha2' , 'deng' , 'GD'),
(202,'haha3' , 'deng' , 'Beijing');
这样就批量插入数据了, 遵循这样的语法,就可以批量插入数据了。
执行成功
用递归吧,不过我不会用MySQL的语法,应该跟SQL server差不多吧
1.录入基础数据
2.执行语句与结果
delimiter $$// 定义结束符为 $$
drop procedure if exists wk; // 删除 已有的 存储过程
create procedure wk()// 创建新的存储过程
begin
declare i int;// 变量声明
set i = 1;
while i 11 do // 循环体
insert into user_profile (uid) values (i);
set i = i +1;
end while;
end $$ // 结束定义语句
// 调用
delimiter ;// 先把结束符 回复为;
call wk();
delimter : mysql 默认的 delimiter是; 告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
已经测试,创建并运行下面的存储过程可以循环添加数据:
create procedure dowhile()
begin
declare i int default 0;
start transaction;
while i50 do
insert into users(userId,userName,userPwd) values(null,concat('s00',i),123456);
set i=i+1;
end while;
commit;
end;
delimiter;