MySQL上使用存储过程简单造数据(循环插入)

-- 建表
drop table if exists `t_user`;
CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(64) NOT NULL DEFAULT '' COMMENT '用户名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='用户表';

-- 修改mysql分隔符为双分号
delimiter ;;

-- 删除存储过程(如果存在的话)
drop procedure if exists fakedata;;

-- 定义存储过程函数
create procedure fakedata()
begin
  declare i int;
  set i=1;
  while i<=10000 do
    -- 插入一条数据
    insert into t_user(`name`) values(concat('小明',i));
    set i=i+1;
  end while;
end;;

-- 恢复mysql分隔符为单分号
delimiter ;

-- 调用存储过程
call fakedata();

以空行为分割线,依次执行sql即可。具体逻辑参考注释,可以通过修改“插入一条数据”这里的sql来自定义插入的内容。

经测试,由于原理还是使用循环插入的形式,想要造一定量级的数据(如百万级或千万级以上),还是很慢的。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍