随笔 - 657,  文章 - 0,  评论 - 116,  阅读 - 153万

场景

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

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

上面使用过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然后运行。

 

 

posted on   霸道流氓  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示