代碼片段:利用存儲過程創建大量測試數據示例

說明

在平時的開發工作中經常需要創建大量的測試數據,手動插入顯然不現實。這個時候我們就需要使用存儲過程來爲我們批量插入數據,這裏簡單介紹一下存儲過程的例子。

示例表

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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章