mysql 使用存储过程批量插数据

#创建测试表
DROP TABLE IF EXISTS test.test;
CREATE TABLE test.test(
id int(10) not null auto_increment,
a int(10) not null,
b int(10) not null,
c int(10) not null,
PRIMARY key (`id`)
)ENGINE INNODB DEFAULT CHARSET utf8 COMMENT '测试表';

 

#清空数据
TRUNCATE table test.test;

#定义存储过程
delimiter //
DROP PROCEDURE IF EXISTS insert_test_val;
##num_limit 要插入数据的数量,rand_limit 最大随机的数值
CREATE PROCEDURE insert_test_val(in num_limit int,in rand_limit int)
BEGIN

DECLARE i int default 1;
DECLARE a int default 1;
DECLARE b int default 1;
DECLARE c int default 1;

WHILE i<=num_limit do

set a = FLOOR(rand()*rand_limit);
set b = FLOOR(rand()*rand_limit);
set c = FLOOR(rand()*rand_limit);
INSERT into test.test values (null,a,b,c);
set i = i + 1;

END WHILE;

END
//

#调用存储过程
call insert_test_val(100000,10);

 

结果:

 

相关链接 http://blog.sina.com.cn/s/blog_9d0b00a4010122wf.html

MySQL 存储过程参数用法 in, out, inout: 

http://www.blogjava.net/nonels/archive/2009/04/22/233324.html

 

posted @ 2016-12-08 10:46  风与叶子  阅读(18761)  评论(1编辑  收藏  举报