我的网站打不开,湖北高端网站建设价格,android网站客户端开发,百度app制作网站mysq之快速批量的插入生成数据 1.insert inot select2.存储过程3.借助工具 在日常测试工作时#xff0c;有时候需要某张表有大量的数据#xff0c;如#xff1a;需要有几百个系统中的用户账号等情况#xff1b;因此#xff0c;记录整理#xff0c;如何快速的在表中插入生… mysq之快速批量的插入生成数据 1.insert inot select2.存储过程3.借助工具 在日常测试工作时有时候需要某张表有大量的数据如需要有几百个系统中的用户账号等情况因此记录整理如何快速的在表中插入生成大量数据 1.insert inot select
将查询出来的表字段值插入到另一张表中可以进行条件筛选只插入满足条件的数据勉强能达到批量生成数据的效果但不灵活且需要有源数据不是很理想的方法
语法
insert into table_name select * from table_name
where 条件或
insert into table_name(列名1,...,列名n) select (列名1,...,列名n) from table_name
where 条件示例test_menu整表内容插入到test_menubak
insert into test_menubak
select * from test_menu;示例test_menu表id时的内容指定字段插入到test_menubak
insert into test_menubak2(menu_id,menu_name,parent_id,path)
select menu_id,menu_name,parent_id,path from test_menu
where menu_id 10;2.存储过程
定义存储过程传递参数循环控制插入表数据中的内容灵活可以根据需要灵活配置插入的内容但是需要编写sql脚本稍微麻烦一点点 语法这里只介绍了基本的语法
create procedure pro_name(类型 参数名 参数类型(长度),...,类型 参数名n 参数类型(长度))
begin
-- 存储过程体
end;类型可分为 in、out、inout in输入参数向存储过程中传递值 out输出参数从存储过程中获取值 inout输入输出参数即可以传递、也可以获取 如in test int (10) declare定义变量 格式declare 变量名 类型;
set赋值 格式set 变量名 值;
concat变量字符串拼接 格式concat(字符串变量名);
while循环语法
while 条件 do-- 循环体
end while;if判断
if 条件 -- 语句块
end if;调用存储过程 格式call 存储过程名(参数1,...,参数n);
示例输入开始和结束参数批量插入数据
delimiter //
-- 检测对应的存储过程是否存在存在则删除
drop procedure if exists moreInsert;-- 定义带两参数startNum、maxtNum的存储过程
create procedure moreInsert(in startNum int(10),in maxtNum int(10))
begin
-- 定义计数器变量currNumdeclare currNum int;set currNum startNum;-- 开始事务start transaction;-- 计数器小于最大值maxtNum时进入循环while currNum maxtNum do-- 插入数据语句insert ignore into 会跳过重复的主键insert ignore into test_user(user_id,dept_id,user_name,nick_name)-- 数据使用变量、将字符串和变量拼接values(currNum,15,concat(test_,currNum),concat(测试账号_,currNum));-- 每次插入完成计数器加1set currNum currNum 1;end while;-- 提交commit;
end //调用存储过程
call moreInsert(5,16);3.借助工具
可以借助工具如nacicat可以利用它里面的数据生产对指定表中生成指定数量的数据可对表的每个字段值进行设置生成随机的值、枚举值等 优点简单快速上手容易 如图
入口 配置字段值