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

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

场景

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新建存储过程

函数-新建函数-过程

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

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

新建成功之后默认为

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

修改其内容为

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然后运行。

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/135825.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!