前言
作为一名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. 执行
完美!没有任何问题~