儲存過程_造使用者資料

板栗+發表於2024-11-28

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

相關文章