利用procedure批量插入数据
2024-09-01 11:55:09
正文
要求在页面查询到5000条数据,为了方便插入,准备用shell脚本写curl命令调用自己写的代码接口,但是速度慢,而且写的时候遇到点儿小问题,故用sql语句写了这个功能
由于operationlog表中的ts字段为13位的时间戳,所以采用了截取的方式。
DROP TABLE IF EXISTS `operationlog`;
CREATE TABLE `operationlog` (
`sn` int(11) NOT NULL AUTO_INCREMENT,
`opl` varchar(8) NOT NULL,
`src` varchar(32) NOT NULL,
`pid` varchar(32) DEFAULT NULL,
`ts` varchar(13) NOT NULL,
PRIMARY KEY (`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
drop procedure if exists batchAdd;
/*count1 循环次数 opl和src为operationlog的列*/
create procedure batchAdd(in count1 int,in opl varchar(32),in src varchar(32))
begin
declare a int;
set a=0;
while a<count1 do
begin
/*延时1s*/
select sleep(1);
/*获取时间戳1523285555.207000,后面3位是0,现在的需求是ts为13位,即带ms的*/
select @time1:=unix_timestamp(now(3));
/*将1523285555.207000的.去掉*/
select @time1:=replace(@time1, '.', '');
/*取1523285555207000左边13位*/
select @time1:=left(@time1, 13);
/*生成sql,进行insert*/
insert into operationlog(opl, src, pid, ts) values(opl, src, '1111', @time1);
/*a加1*/
set a = a + 1;
end;
end while;
end;
--查看procedure
show procedure status;
--调用该procedure
call batchAdd(10, 'INFO', 'AJG');
--删除procedure
drop procedure batchAdd;
create procedure batchAdd如图所示:
创建好procedure后,可以通过call batchAdd(10, 'INFO', 'AJG');来调用,如下图所示:
本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端 等资源。同时我们组建了一个技术交流群,里面有很多大佬,会不定时分享技术文章,如果你想来一起学习提高,可以公众号后台回复【2】,免费邀请加技术交流群互相学习提高,会不定期分享编程IT相关资源。
扫码关注,精彩内容第一时间推给你
最新文章
- [Offer收割]编程练习赛5-1 小Ho的防护盾
- Linux(Debian)+Apache+Django 配置
- 开发Chrome Extension截取你微博的帐号密码
- 使用Git上传本地项目代码到github
- 问题:ldconfig
- bootstrap-validator使用
- CSS Unicode 编码
- STM8不用手动复位进入自带Bootloader方法(串口下载)
- AKKA学习笔记
- Oracle 11g 删除归档日志
- 老李分享:HTTP协议之协议头
- 详解MySQL存储过程的“异常处理”
- Scrum Meeting Alpha - 1 (团队任务分解)
- C# 压缩PDF图片
- day27:反射和双下方法
- Discuz3.2 新用户插入数据库SQL
- 自学工业控制网络之路1.3-典型的现场总线介绍FF
- LeetCode - 774. Minimize Max Distance to Gas Station
- 利用SparkLauncher 类以JAVA API 编程的方式提交Spark job
- Linux 4.18内核系列已过时