<!-- 创建PROCEDURE-->
DROP PROCEDURE IF EXISTS insertstudent;
CREATE PROCEDURE insertstudent(
id varchar(20),stu_name varchar(20),
age tinyint
)
BEGIN
insert into student values(id,stu_name,age);
END;
<!--查询 PROCEDURE-->
SHOW PROCEDURE STATUS WHERE name like '%insert%';
<!--调用PROCEDURE-->
CALL insertstudent('1','小明',20);
CREATE TABLE `acct_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=193 DEFAULT CHARSET=latin1;
CREATE TABLE `acct_user_1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3463 DEFAULT CHARSET=latin1;
delimiter $$
drop procedure if exists batch_insert;
create procedure batch_insert()
begin
declare c_id int;
declare c_name varchar(10);
declare c_index int;
declare done int ;
declare cur cursor for select id from test.acct_user;
declare continue handler for not found set done = 1;
open cur;
loop1:loop
FETCH cur into c_index;
if done =1 then LEAVE loop1; end if;
select id,name into c_id ,c_name from acct_user where id = c_index;
insert into test.acct_user_1 (name,id) values(c_name,c_id);
end loop loop1;
close cur;
end $$
call batch_insert();
select * from acct_user_1;
delete from acct_user_1;