存储过程+函数造数据myql
admin
2023-04-17 20:21:43
0

往身份信息表插入N条记录,N=P*Q,
p:每条insert语句插入的记录数,由临时表的数量决定
q:循环次数,存储过程的入参

-- 身份信息表
drop table if exists t_identity_info;
create table t_identity_info (
id int(11) not null auto_increment comment '主键id',
real_name varchar(20) default null comment '姓名',
id_card varchar(18) not null comment '×××号',
create_time varchar(19) not null comment '创建时间',
primary key (id),
key index_id_card (id_card)
) engine=innodb auto_increment=1 default charset=utf8 comment='用户信息表';

-- 删除
drop function if EXISTS rand_xing_ming ;

-- 创建函数
create function rand_xing_ming() returns varchar(20)
begin
declare xing_string varchar(1000) default '赵钱孙李周吴郑王冯陈';
declare ming_string varchar(1000) default '天地玄黄宇宙洪荒日月';
declare xing_ming varchar(20) default '' ;

declare xing_index int;
declare ming_index int;
declare temp_xing varchar(10);
declare temp_ming varchar(10);

set xing_index = round(rand()10000) mod (char_length(xing_string)-1);
set ming_index = (round(rand()
10000)) mod (char_length(ming_string)-1);
set temp_xing = substring(xing_string,xing_index,1);
set temp_ming = substring(ming_string,ming_index,1);
set xing_ming = concat(temp_xing,temp_ming);
return xing_ming;
end
;

-- 测试
select rand_xing_ming();

-- 临时表,用来控制insert的条数
drop table if exists t_temp;
create table t_temp (
id int(11) not null auto_increment comment '主键id',
primary key (id)
) engine=innodb auto_increment=1 default charset=utf8 comment='临时表';

-- 插入100条数据
insert into t_temp values
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),();

-- 存储过程
drop procedure if exists insert_data;

delimiter ;;
create procedure insert_data(IN data_count int)
begin
declare i int;
set i = 0;
while i < data_count do
set i = i +1;

insert into t_identity_info (real_name,id_card,create_time)
select rand_xing_ming(),'abc',now() from t_temp ;

end while;
end
;;
DELIMITER ;

-- 调用存储过程 插入10W条记录
set autocommit= 0;
call insert_data(1000);
commit;

-- 验证
select count(1) from t_identity_info;

相关内容

热门资讯

终于明白“七彩丹霞到底有挂吗?... 家人们!今天小编来为大家解答七彩丹霞透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
今日重大消息“道游联盟到底有挂... 您好:道游联盟这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
金源智能取得电池焊接压装装置专... 国家知识产权局信息显示,惠州金源智能机器人有限公司取得一项名为“电池焊接压装装置及焊接设备”的专利,...
今日重磅消息“娱网皮球开挂器?... 网上科普关于“娱网皮球有没有挂”话题很是火热,小编也是针对娱网皮球作*弊开挂的方法以及开挂对应的知识...
广州在全国率先设立区级人工智能... 【环球网科技综合报道】12月29日消息,记者从广州海珠发布平台获悉,日前广州市海珠区人工智能发展局成...
玩家分享攻略“麦穗推筒子开挂器... 网上科普关于“麦穗推筒子有没有挂”话题很是火热,小编也是针对麦穗推筒子作*弊开挂的方法以及开挂对应的...
【第一资讯】“新好游炸/金/花... 有 亲,根据资深记者爆料新好游炸/金/花是可以开挂的,确实有挂(咨询软件...
今日重大消息“情怀娱乐究竟有挂... 有 亲,根据资深记者爆料情怀娱乐是可以开挂的,确实有挂(咨询软件无需打开...
今日重大发现“新版九哥开挂神器... 今日重大发现“新版九哥开挂神器?”(原来真的有挂)您好,新版九哥这个游戏其实有挂的,确实是有挂的,需...
今日重磅消息“海贝大厅牛牛有挂... 网上科普关于“海贝大厅牛牛有没有挂”话题很是火热,小编也是针对海贝大厅牛牛作*弊开挂的方法以及开挂对...