Skip to content

快速生成大量测试数据

创建数据表

sql
drop table if exists `table_name`;

CREATE TABLE  `table_name`(
  id int NOT NULL AUTO_INCREMENT PRIMARY KEY comment '主键', 
  user_id tinyint not null comment '用户id',
  user_name varchar(30) comment '用户名称',
  created_at datetime not null comment '创建时间', 
  updated_at datetime comment '修改时间'
) comment '数据表名称';

插入第一条数据

sql
insert into `table_name` values(1, 1, 'user_1', Now(), Now());

读取当前表 table_name 的数据,并批量插入

sql
set @i=(select MAX(id) from `table_name`);
insert into `table_name`(id, user_id, user_name, created_at, updated_at) 
select @i:=@i+1,
  left(rand()*10,1) as user_id,
  concat('user_',@i%2048),
  date_add(created_at, interval + @i*cast(rand()*100 as signed) SECOND),
  date_add(date_add(updated_at, interval + @i*cast(rand()*100 as signed) SECOND), interval + cast(rand()*1000000 as signed) SECOND)
from `table_name`;

查看最大ID

sql
select MAX(id) from `table_name`;