DELIMITER $$ CREATE PROCEDURE `sp_insert_test_users`(IN `para_count` INT) BEGIN DECLARE p_username varchar(50); DECLARE p_countryCallingCode varchar(10) default '86'; DECLARE p_phone varchar(20); DECLARE p_all_phone varchar(20); DECLARE p_create_time datetime; DECLARE p_index int default 0; DECLARE p_userid int default 0; IF para_count > 0 THEN SET p_create_time = NOW(); while p_index < para_count do select concat( substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1), substring('abcdefghijklmnopqrstuvwxyz', rand()*26 , 1) ) into p_username; select concat( '139', substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1), substring('1234567890', rand()* 10 , 1) ) into p_phone; if not exists ( select 1 from users where username = p_username or phone = p_phone ) and length(p_username) = 8 and length(p_phone) = 11 then set p_all_phone = concat(p_countryCallingCode,';',p_phone); INSERT INTO `users` (`username`, `countryCallingCode`, `phone`, `_phone`, `group`, `created_at`, `updated_at`) VALUES (p_username,p_countryCallingCode,p_phone,p_all_phone, 'user', p_create_time, p_create_time); select @@IDENTITY into p_userid; INSERT INTO `users_test_mock` (`userid`,`username`, `countryCallingCode`, `phone`) VALUES (p_userid,p_username,p_countryCallingCode,p_phone); SET p_index = p_index + 1; end if; end while; END IF; END$$ DELIMITER ;