四时宝库

程序员的知识宝库

mysql快速创建百万测试数据(mysql快速写入百万数据)

1.表结构如下

CREATE TABLE `person` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `gmt_created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  index idx_name (name)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

2.创建存储过程

-- 第一步,删除原有存储过程
drop procedure if exists insert_person;

-- 第二步,创建新存储过程
-- 2.1 重新定义结束符。mysql客户端默认结束符为分号(;),当遇到分号时,执行器会执行语句。由于存储过程是完整逻辑,里包含分号,因此重新定义结束符
delimiter $                             
create procedure insert_person(IN p_in int)
begin
	declare i int;   
	declare name varchar(20);
	declare address varchar(100);
	set i = 1;       
    
	while i <= p_in do                  
		set name = CONCAT('name', i);
		set address = CONCAT_WS('#', 'address', i);     
	  insert into person(`name`, `address`) values(name, address);   
	  set i = i + 1;                  
	end while;                         
end $
-- 2.2 重新定义结束符
delimiter ;  

-- 第三步,调用
set @p = 1000000;    
call insert_person(@p);                     

当存储过程为无参时,调用时直接为call my_procedure; 不需要带括号。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接