MYSQL中创建存储过程实现向表中循环插入数据

时间:2023-01-07 16:24:07

首先在test数据库中先创建一个表test:

CREATE TABLE test(
ID INT PRIMARY KEY AUTO_INCREMENT ,
test_name VARCHAR(20),
test_num INT);

现在,我们来创建一个存储过程,实现向表里循环插入数据;

delimiter $                                                           /*(意思是mysql语句的结尾换成以$结束,mysql默认是;结束)*/

create procedure pro1(in n int)                               /*创建一个名为pro1的存储过程,调用存储过程时,可以通过输入参数n来指定循环的次数*/

begin                                                                 /*开始*/

declare num001 , num002 int;                                /*定义num001和num002的数据类型为int*/

set num001 = 1 , num002 = 10;                             /*设置num001=1,num002=10*/

while n - num001 >= 0 do                                     /*当num001小于等于n时执行下面的操作*/

insert into test(test_name,test_num)

values(concat("zhangsan" , num001) , num002);        /*在test表中插入数据test_name=zhangsan+num001,test_num=num002,contat意为将张三和num001连起来*/

set num001=num001+1,num002=num002*2;             /*设置num001=num001+1,num002=num002*2*/

end while;                                                          /*当num>100时,不再执行插入操作循环结束*/

end $                                                                /* 存储过程结束*/

delimiter ;                                                          /*(mysql语句的结尾换成以;结束)*/

执行存储过程:

call pro1(100) ;

执行成功后,数据如下所示:

MYSQL中创建存储过程实现向表中循环插入数据

 
如果想查询test数据库存在哪些存储过程,则执行:
select * from mysql.proc where db = 'test' and type = 'procedure'  ;
结果如下图所示:
MYSQL中创建存储过程实现向表中循环插入数据