1.需求
我想通过存储过程的两次while循环向 tb_article_category表 插入7*14条记录2.代码//建表
CREATE TABLE `tb_article_category` (
`AutoID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`CategoryID` bigint(20) unsigned NOT NULL DEFAULT '0' ,
`CategoryName` varchar(100) DEFAULT NULL ,
`AddTime` datetime DEFAULT NULL,
`UpdateTime` datetime DEFAULT NULL ,
PRIMARY KEY (`AutoID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;//创建存储过程CREATE PROCEDURE `category_insert`(in innerNum int,in outterNum int)
begin
set @a=0;
set @b=0;
two:while @a<=outterNum do
one:while @a<=innerNum do
insert into tb_article_category(AutoID,CategoryID,CategoryName,AddTime,UpdateTime)
values(null,@b,'csdn',null,null);
set @a=@a+1;
END while one;
set @b=@b+1;
END while two;
end;3.背景信息
调用存储过程:
call category_insert(7,14);4.问题
由于我用的是图形界面,当执行这个存储过程,一会儿立刻图形界面卡住
因此,我认为可能是我的存储过程出现了问题
但是这个存储过程创建的时候并未出现任何错误,能顺利创建
希望高手帮我看看存储过程的代码哪里有问题5.帖尾
请高手指教,小生在此感谢了。临帖涕零,不知所言!
我想通过存储过程的两次while循环向 tb_article_category表 插入7*14条记录2.代码//建表
CREATE TABLE `tb_article_category` (
`AutoID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`CategoryID` bigint(20) unsigned NOT NULL DEFAULT '0' ,
`CategoryName` varchar(100) DEFAULT NULL ,
`AddTime` datetime DEFAULT NULL,
`UpdateTime` datetime DEFAULT NULL ,
PRIMARY KEY (`AutoID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;//创建存储过程CREATE PROCEDURE `category_insert`(in innerNum int,in outterNum int)
begin
set @a=0;
set @b=0;
two:while @a<=outterNum do
one:while @a<=innerNum do
insert into tb_article_category(AutoID,CategoryID,CategoryName,AddTime,UpdateTime)
values(null,@b,'csdn',null,null);
set @a=@a+1;
END while one;
set @b=@b+1;
END while two;
end;3.背景信息
调用存储过程:
call category_insert(7,14);4.问题
由于我用的是图形界面,当执行这个存储过程,一会儿立刻图形界面卡住
因此,我认为可能是我的存储过程出现了问题
但是这个存储过程创建的时候并未出现任何错误,能顺利创建
希望高手帮我看看存储过程的代码哪里有问题5.帖尾
请高手指教,小生在此感谢了。临帖涕零,不知所言!
begin
set @a=innerNum*outterNum;
while @a>0 do
insert into tb_article_category(AutoID,CategoryID,CategoryName,AddTime,UpdateTime)
values(null,@b,'csdn',null,null);
set @a=@a-1;
END while ;end;这样不好么?为什么要两次循环?
delimiter //
然后是你的存储过程:
CREATE PROCEDURE `category_insert`(in innerNum int,in outterNum int)
begin
set @a=0;
set @b=0;
two:while @a<=outterNum do
one:while @a<=innerNum do
insert into tb_article_category(AutoID,CategoryID,CategoryName,AddTime,UpdateTime)
values(null,@b,'csdn',null,null);
set @a=@a+1;
END while one;
set @b=@b+1;
END while two;
end;
//
然后再恢复
delimiter ;
再
call category_insert(7,14);试试
begin
set @a=0;
set @b=0;
two:while @b<=outterNum do
one:while @a<=innerNum do
insert into tb_article_category(AutoID,CategoryID,CategoryName,AddTime,UpdateTime)
values(null,@b,'csdn',null,null);
set @a=@a+1;
END while one;
set @b=@b+1;
END while two;
end;
two:while @b<=outterNum do
END while one;
set @a=0;