說明
在平時的開發工作中經常需要創建大量的測試數據,手動插入顯然不現實。這個時候我們就需要使用存儲過程來爲我們批量插入數據,這裏簡單介紹一下存儲過程的例子。
示例表
CREATE TABLE `z_generate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL,
`gmt_create` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
存儲過程函數
/**
* 加 // 代表默認情況下,不可能等到用戶把這些語句全部輸入完之後,再執行整段語句。
* 因爲mysql一遇到分號,它就要自動執行。 即,在語句RETURN '';時,mysql解釋器就要執行了。
* 這種情況下,就需要事先把delimiter換成其它符號,如//或$$
*/
delimiter //
/**創建存儲過程**/
create procedure generator()
/**方法開始固定語法**/
begin
/**定義變量**/
declare i int;
declare originName varchar(50);
declare targetName varchar(50);
declare gmtCreate timestamp;
set i = 0;
set originName = '蕾歐娜';
while i < 100 DO
set i = i + 1;
set targetName = concat(originName, i);
set gmtCreate = date_add(curdate(), interval i day);
insert into z_generate(`name`, `gmt_create`) values (targetName, gmtCreate);
end while;
end;
//
/**執行存儲過程**/
call generator()