phpMyAdmin创建MySQL的存储过程

ncomoon 2019-03-01

通过phpMyAdmin,创建procedure,用于生成测试数据。

随机的用户名及手机号。

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 ;

调用:

call sp_insert_test_users(10);

phpMyAdmin 的详细介绍:请点这里
phpMyAdmin 的下载地址:请点这里

相关推荐