小弟在此仅作测试用,所以简单建了个表
1.表结构
CREATE TABLE `t_user` (
`userName` varchar(50) DEFAULT NULL,
`userPassword` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.存储过程
PS:更改root密码,当前root密码为空
mysql-u root -p
空密码登陆后,
在控制台上输入update mysql.user set password=PASSWORD('新密码') where User = 'root';
flush privileges;
quit;
用新密码重新登录。
mysql -u root -p;
提示密码:输入root密码
在root用户下命令行创建存储过程
(1)将命令分隔符改为 //
delimiter //
(2)创建存储过程
- 无参数存储过程
create procedure pro_insert()
begin
declare i int;
start transaction;
set i = 0;
while i <=100000 do
insert into t_user values(i,i);
set i=i+1;
end while;
commit;
end;
//
插入10w条数据
- 有参数存储过程
在此建立一个测试表
CREATE TABLE `tt` (
`id` int(11) DEFAULT NULL,
`name` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
create procedure pro_insert4(IN sizes int,IN params varchar(30))
begin
declare i int;
start transaction;
set i = 0;
while i<=sizes do
insert into tt values(i,params);
set i=i+1;
end while;
commit;
end;
3.调用存储过程
root用户,命令行下调用无参数存储过程 call pro_insert();//
有参数存储过程插入十万条数据 call pro_insert4(100000,'zz');//