利用procedure批量插入数据

小碗汤 · · 1241 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

正文

  要求在页面查询到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如图所示:

batchAdd_procedure

创建好procedure后,可以通过call batchAdd(10, 'INFO', 'AJG');来调用,如下图所示:

call_batchAdd



本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端 等资源。同时我们组建了一个技术交流群,里面有很多大佬,会不定时分享技术文章,如果你想来一起学习提高,可以公众号后台回复【2】,免费邀请加技术交流群互相学习提高,会不定期分享编程IT相关资源。


扫码关注,精彩内容第一时间推给你

image


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:小碗汤

查看原文:利用procedure批量插入数据

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1241 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传