一、新建一張表 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');