Mysql学习 - 01 创建大量测试数据

169 阅读1分钟

前言

作为一名Java开发选手,平时学习mysql时,特别想对学的知识点进行测试验证,比如:索引、Explain和行锁等,可是自己不会造大量的随机数据,难受的一批...

mysql的存储过程实现

1. 准备表结构

wtest表结构中给出了mysql中常用的三种数据类型:int、varchar和date。

CREATE TABLE `wtest` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `test_int` int(10) NOT NULL,
  `test_varchar` varchar(255) NOT NULL,
  `test_date` datetime(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

2. 准备存储过程

delimiter $$
create procedure random_wtest()
begin
    declare i int default 1;
    declare char_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

    while i < 10000 do
        insert into w_test(test_int, test_varchar, test_date) values(
            floor(i*rand()*100),
            subString(char_str, floor(1+rand()*60), 10),
            concat('2022-01-01 ', floor(10+rand()*10), ':', floor(10+rand()*10), ':', floor(10+rand()*10)));
    set i = i + 1;
    end while;
end;$$
delimiter ;

3. 执行

image.png 完美!没有任何问题~

有问题看下面👇🏻

  1. 使用存储过程在MySQL中创建大量测试用数据

  2. 如何在MySQL中,通过创建存储过程,构造大批量的测试数据