我这里,用的是自定义函数来循环插入,语句参考如下,(没有把表名抽离成变量,因为我没有找到方法,尴尬)
-- 传入需要插入数据的id开始值和数据量大小,函数返回结果为最终插入的条数,此值正常应该等于数据量大小。 -- id自增,循环往 t1 表添加数据。这里为了方便,id、name取同一个变量,address就为北京。 delimiter // drop function if exists insert_datas1// create function insert_datas1(in_start int(11),in_len int(11)) returns int(11) begin declare cur_len int(11) default 0; declare cur_id int(11); set cur_id = in_start; while cur_len < in_len do insert into t1 values(cur_id,cur_id,'北京'); set cur_len = cur_len + 1; set cur_id = cur_id + 1; end while; return cur_len; end // delimiter ; -- 同样的,往 t2 表插入数据 delimiter // drop function if exists insert_datas2// create function insert_datas2(in_start int(11),in_len int(11)) returns int(11) begin declare cur_len int(11) default 0; declare cur_id int(11); set cur_id = in_start; while cur_len < in_len do insert into t2 values(cur_id,cur_id,'北京'); set cur_len = cur_len + 1; set cur_id = cur_id + 1; end while; return cur_len; end // delimiter ;
在此之前,先清空表里的数据,然后执行函数,
select insert_datas1(1,1000000);
对 t2 做同样的处理,不过为了两张表数据有交叉,就从 70W 开始,然后插入 200W 数据。
select insert_datas2(700000,2000000);
本文由 admin 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2022-08-09 22:31:32