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

场景

Navicat通过存储过程批量插入mysql数据:

Navicat通过存储过程批量插入mysql数据_霸道流氓气质的博客-CSDN博客

上面使用过Navicat借助存储过程批量插入数据。但是插入数据是固定的

insert语句,如果在本地开发时需要模拟插入一些随机数据(从指定选择项中随机选择),

如果涉及到时间字段,还需要指定时间范围内随机生成时间。

注:

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

实现

1、使用ELT(CEILING(rand( ) * 8) ,)函数随机选择插入项的值

使用FROM_UNIXTIME( UNIX_TIMESTAMP())函数生成随机时间段内的数据。

示例Insert语句

INSERT `test` ( `car_num`, `no_login_type`, `record_time`, `last_login_number`, `last_login_time`, `remark` )
VALUES
 (
  ELT(CEILING(rand( ) * 8) ,  '测试1', '测试2', '测试3', '测试4', '测试5', '测试6', '测试7', '测试8'),
  ELT(CEILING(rand( ) * 2) ,  '1', '2'),
  FROM_UNIXTIME( UNIX_TIMESTAMP( '2023-01-01 14:53:27' ) + FLOOR( 0 + ( RAND() * 60 * 60 * 24 * 30 * 6 )) ),
  'test',
  '2023-01-09 16:06:01',
 NULL
 );

比如这里car_num就使用从'测试1', '测试2', '测试3', '测试4', '测试5', '测试6', '测试7', '测试8'随机选择。

no_login_type使用从'1', '2'中随机选择。

时间字段这里就是从2023-01-01 14:53:27开始至后面6个月内的随机时间。

2、还是使用Navicat新建存储过程

函数-新建函数-过程

添加输入参数模式IN,名字自定义,类型为int,用来做执行次数的输入参数

新建成功之后默认为

修改其内容为

CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_insertMany`(in num INT)
BEGIN
 DECLARE i int DEFAULT 1;
 WHILE i<=num DO
  
INSERT INTO `bus_driver_no_login_record` ( `car_num`, `no_login_type`, `record_time`, `last_login_number`, `last_login_time`, `remark` )
VALUES
 (
  ELT(CEILING(rand( ) * 8) ,  '测试1', '测试2', '测试3', '测试4', '测试5', '测试6', '测试7', '测试8'),
  ELT(CEILING(rand( ) * 2) ,  '1', '2'),
  FROM_UNIXTIME( UNIX_TIMESTAMP( '2023-01-01 14:53:27' ) + FLOOR( 0 + ( RAND() * 60 * 60 * 24 * 30 * 6 )) ),
  'test',
  '2023-01-09 16:06:01',
 NULL
 );
   
  SET i=i+1;
 END WHILE;
END

中间为要执行插入数据的语句。

num为循环次数,即上面添加的IN参数。

pro_insertMany为自定义保存的存储过程名称。

保存运行,输入num然后运行。

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值