存储过程_造用户数据

一、新建一张表 user_info

DROP TABLE IF EXISTS user_info;

CREATE TABLE user_info(
id int(11) PRIMARY KEY  AUTO_INCREMENT,
user_name char(10) NOT NULL,
user_sex char(4) DEFAULT '女',
user_age int(11) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

二、创建存储过程

DROP PROCEDURE IF EXISTS insert_user_val;

CREATE PROCEDURE insert_user_val(

in num_limit int, -- num_limit 要插入数据的数量

in uname VARCHAR(50)  -- 插入的用户名

)

BEGIN
DECLARE i int default 1;
DECLARE user_name VARCHAR(50) default 'user';
DECLARE user_sex char(4) default '女';
DECLARE user_age int default 1;

WHILE i<=num_limit do
if i<10 THEN
SET user_name=CONCAT(uname,'_00',i); -- 拼接字符串 格式 user_001
ELSEIF i<100 THEN
SET user_name=CONCAT(uname,'_0',i); -- 拼接字符串 格式 user_011
ELSE
SET user_name=CONCAT(uname,'_',i); -- 拼接字符串 格式 user_100
END IF;
SET user_sex=if(i%2=0,'女','男'); -- 定义性别取男、女
SET user_age = FLOOR(10+RAND()*(30 - 10)); -- 年龄在10-30之间随机取
INSERT into user_info values (null,user_name,user_sex,user_age);
set i = i + 1;
END WHILE;
END;

三、调用存储过程造数据

call insert_user_val(100,'jane');

posted @ 2024-11-28 14:50  板栗+  阅读(7)  评论(0编辑  收藏  举报