代码片段:利用存储过程创建大量测试数据示例

说明

在平时的开发工作中经常需要创建大量的测试数据,手动插入显然不现实。这个时候我们就需要使用存储过程来为我们批量插入数据,这里简单介绍一下存储过程的例子。

示例表

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()
原创文章 67 获赞 31 访问量 5万+

猜你喜欢

转载自blog.csdn.net/u012534326/article/details/103179517