如何快速新增百万测试数据

868 阅读2分钟
  • 第一种方法利用Excel

传送门:blog.csdn.net/zhusongziye…

  • 第二种方法利用存储过程
1: 创建表SQL
drop table if exists tb_lemon_student_score;
create table tb_lemon_student_score(
	id int primary key auto_increment,
	sName varchar(50),
	phone varchar(11),
	score tinyint(1)
);

2:编写存储过程:
-- 编写存储过程并保存
-- 完成特定功能:往数据库表新增一百万的数据:
-- 如果存在则删除
drop procedure if exists proc_batch_insert_data;
-- 创建存储过程
create procedure proc_batch_insert_data(in num int)
begin
	-- 定义一个整型的变量
	declare _id int;
	-- 定义一个sName保存学生的名字
	declare _sName varchar(20);
	-- 定义_phone保存学生的手机号
	declare _phone char(11);
	-- 定义一个score保存学生的成绩
	declare _score int;

  -- 写上逻辑
	-- 插入100条数据

  -- 初始化变量的值为1
	set _id=1;
	-- while循环
	while _id<=num do
		-- sName等于s_拼接上不断变化的_id
		set _sName = concat('s_',_id);
		-- _phone等于13000000000加上不断变化的_id
		set _phone = 13000000000+_id;
		-- 通过mysql的随机函数生成一个分数
		set _score = rand()*100;
		insert into tb_lemon_student_score(sname,phone,score) values (_sName,_phone,_score);
		-- 迭代语句,否则会死循环
		set _id=_id+1;
	end while;
end;

-- 3:运行存储过程
call proc_batch_insert_data(1000000);


附其他SQL:
-- 查询表中的所有数据
select * from tb_lemon_student_score;

-- 清空表中的所有数据
TRUNCATE tb_lemon_student_score;

-- 统计表记录数量
select count(1) from tb_lemon_student_score;

-- 查询最后100条数据
select * from tb_lemon_student_score ORDER BY id desc LIMIT 100;

  • 第三种方法利用脚本语言生成百万数据,导入向导导入到表中

第一步:利用脚本语言生成txt文件

import random
for i in range(1,100):
    phone=13000000000+i
    score=random.randint(1,100)
    print("%d|s_%d|%s|%d")%(i,i,phone,score)

#重定向到txt文件
python xxx.py > xxx.txt

第二步:通过load data infile命令导入数据库

load data infile 'xxx.txt' into table  xxx fields terminated by '|'
  • 第四种方法利用pymysql

传送门:www.cnblogs.com/blitheG/p/7…

  • 第五种方法程序语言生成sql脚本,然后运行该sql脚本