存储过程_造用户数据
一、新建一张表 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');