Mysql中使用存储过程插入decimal和时间数据递增的模拟数据

发布时间 2023-08-15 16:44:04作者: 霸道流氓

场景

Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/129179745

在上面的基础上,如何使用存储过程构造坐标数据规律递增以及时间递增的模拟数据。

表结构如下

 

要实现x字段,类型为decimal,每次递增1插入;record_time时间字段每次递增一秒插入数据。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、Navicat-函数-新建函数-选择过程-输入名称-下一步,配置参数模式为IN,名称随意这里为num,类型为int,代表循环次数。

 

2、点击完成,修改过程代码如下

CREATE DEFINER=`root`@`localhost` PROCEDURE `moniguiji`(IN `num` int)
BEGIN
 #Routine body goes here...
 DECLARE i int DEFAULT 1;
 DECLARE x DOUBLE DEFAULT 5258.61;
 DECLARE DTime DATETIME DEFAULT '2023-08-15 16:00:00';
  WHILE i<=num DO
 
 INSERT INTO `t_personnel_orientation` ( `x`, `y`, `card_number`, `record_time` )
 VALUES
  (
  x,
  5370.97,
  '111111',
  DTime
  );
  
  SET i=i+1;
 SET x=x+1;
 SET DTime = DATE_ADD(DTime,INTERVAL 1 SECOND);
 END WHILE;
END

这里的意思是声明x变量并从5258.61默认值开始,每次循环执行加1操作。

声明DTime时间变量,每次循环从'2023-08-15 16:00:00'开始递增加一秒。

3、点击保存和运行

 

运行后输入循环次数

 

等待运行结束

 

查看数据效果