MySQL系列之批量写入给定时间范围内的数据

举报
yd_273762914 发表于 2021/04/09 00:51:57 2021/04/09
【摘要】 需求:最近需要在mysql数据库中造大量数据进行测试,而且要求要在某段时间内,本来想通过存储过程写,不过觉得麻烦,所以想到直接通过sql写 前提条件:业务表(sys_user_action_log )有大量的数据,你能批量写的数据不能超过业务表的数据 INSERT INTO sys_user_action_log ( seq, ip, url, do...

需求:最近需要在mysql数据库中造大量数据进行测试,而且要求要在某段时间内,本来想通过存储过程写,不过觉得麻烦,所以想到直接通过sql写

前提条件:业务表(sys_user_action_log )有大量的数据,你能批量写的数据不能超过业务表的数据

INSERT INTO sys_user_action_log (
  seq,
  ip,
  url,
  domain,
  title,
  referrer,
  lang,
  useragent,
  sh,
  sw,
  cd,
  account,
  `action`,
  `time`,
  usercode
) 
SELECT REPLACE(UUID(), '-', ''),
  'ip',
  'http://127.0.0.1/login.do',
  'domain',
  '登录',
  'referrer',
  'zh-cn',
  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15',
  '1440',
  '2560',
  '24',
  'System',
  '基础数据_用户登录',
  FROM_UNIXTIME( UNIX_TIMESTAMP('2020-01-01 12:00:00') + FLOOR(0 + (RAND() * 31536000))
  ),
  'admin' FROM t_user_action_log LIMIT 0,1000;

  
 

FROM_UNIXTIME( UNIX_TIMESTAMP('2020-01-01 12:00:00') + FLOOR(0 + (RAND() * 31536000)) )

  • UNIX_TIMESTAMP函数以一个时间为基准,在0到1年的基础日期中添加随机的秒数,并转为DATETIME

  • 31536000 = 60*60*24*365

sure , 新建存储过程也是可以的,在sqlyog,选中数据库,右键->Create->Stored Procedure…

DELIMITER $$

USE `t_base`$$

DROP PROCEDURE IF EXISTS `proc_batch_insert`$$

CREATE DEFINER=`root`@`%` PROCEDURE `proc_batch_insert`()
BEGIN
  DECLARE i INT ;
  SET i = 0;
  WHILE i < 1000 DO INSERT INTO t_user_action_log ( seq, ip, url, domain, title, referrer, lang, useragent, sh, sw, cd, account, `action`, `time`, usercode ) VALUES ( REPLACE(UUID(), '-', ''), 'ip', 'http://127.0.0.1/login.do', 'domain', '登录', 'referrer', 'zh-cn', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15', '1440', '2560', '24', 'System', '基础数据_用户登录', FROM_UNIXTIME( UNIX_TIMESTAMP('2020-01-01 12:00:00') + FLOOR(0 + (RAND() * 31536000)) ), 'admin' ) ; SET i = i+1;
  END WHILE ;
END$$

DELIMITER ;

  
 

调用存储过程:

CALL proc_batch_insert();

  
 

文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。

原文链接:smilenicky.blog.csdn.net/article/details/115402909

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。