广告
返回顶部
首页 > 资讯 > 数据库 >Mysql 使用存储过程动态批量添加数据
  • 399
分享到

Mysql 使用存储过程动态批量添加数据

Mysql使用存储过程动态批量添加数据 2021-05-18 03:05:33 399人浏览 绘本
摘要

循环批量插入数据 -- 创建存储过程 create procedure my_procedure01(in num int(2),out ii int(2)) begin declare i int(2) defaul

Mysql 使用存储过程动态批量添加数据

循环批量插入数据

-- 创建存储过程
create procedure my_procedure01(in num int(2),out ii int(2))
begin
    declare i int(2) default 0;
    declare str int(2);
    while i < num
    do
        set str = round(rand()*100) + 1;
        insert into p_procedure (name) values (str);
        set i = i + 1;
    end while;
    
    set ii = i;
end;
-- 删除存储过程
drop procedure my_procedure01;
-- 调用存储过程
call my_procedure01(2, @y);
-- 查询存储过程的输出
select @y;

拼接批量插入数据

-- 创建存储过程
create procedure my_procedure02(in num int(2),out ii text)
begin
    declare i int(2) default 0;
    declare str int(2);
    declare data text;
        
    while i < num
    do
        set str = round(rand()*100) + 1;
        set data = concat("(", str, ")");

        -- 存储 alldata 内容的变量必须是全局变量,使用 @ 符修饰
        if @insertData = "" then
            set @insertData = CONCAT_WS(",", data);
        else
            set @insertData = CONCAT_WS(",", @insertData, data);
        end if;

        set i = i + 1;
    end while;
    -- 存储 sql 内容的变量必须是全局变量,使用 @ 符修饰
    set @sql = CONCAT("INSERT INTO p_procedure (name) VALUES ", @insertData);
        
    -- 预处理
    PREPARE ins from @sql;
    EXECUTE ins;
    DEALLOCATE PREPARE ins;
    
    -- 清空全局 @insertData 数据,否则数据会一直追加
    set @insertData = "";

    -- 输出 sql
    set ii = @sql;
        
end;
-- 调用存储过程
call my_procedure02(2, @ii);
-- 查询存储过程的输出
select @ii;
-- 外部重置全局变量
set @insertData = "";
-- 删除存储过程
drop procedure my_procedure02;
-- 存储过程-实例02 - end

**执行的 sql **

attachments-2020-08-FGhslRUY5f30a8545a1d8.png

 

© 著作权归作者所有 打赏 点赞 (0) 收藏 (0) 分享 微博 QQ 微信 打印 举报 上一篇: 处理器主频概念及 xxxGHz 的运算速度 下一篇: linux 内核及 GNU/Linux 操作系统的基本体系结构 php开源社区

PHP开源社区

粉丝 1 博文 389 码字总数 563707 作品 0 长沙 技术主管 关注 私信 提问 加载中 请先登录后再评论。
插入表情 {{ emoji.type }} 插入软件 发表评论
删除一条评论

评论删除后,数据将无法恢复

取消 确定 相关文章 最新文章 Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华 2013/11/24 2W 22 记一次失败的Perl + Nginx + FastCGI 配置过程

这两天心血来潮,不知道为什么和 Perl + Nginx + FastCGI 配置 耗上了。但是失败了,记录如下: 1)安装Nginx 1.4.3 ,我的是windows 7 系统,修改配置文件如下: location ~ .(pl|cgi|perl)?...

通吃岛-低手哥 2013/10/27 1.7K 7 访问安全控制解决方案

本文是《轻量级 JAVA WEB 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇 2013/11/03 3.5K 8 浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: 樂天 2014/03/22 693 1 SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet 2014/05/21 9.7K 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

获取javascript数组中的所有唯一值(删除重复项) - Get all unique values in a JavaScript array (remove duplicates)

问题: I have an array of numbers that I need to make sure are unique. 我需要确定一个唯一的数字数组。 I found the code snippet below on the internet and it works great until th......

javail 30分钟前 11 0 如何检查字符串是否为空? - How to check if the string is empty?

问题: Does python have something like an empty string variable where you can do: Python是否有类似空字符串变量的内容可以在其中执行: if myString == string.empty: Regardless, wh......

富含淀粉 今天 7 0 您如何存储未跟踪的文件? - How do you stash an untracked file?

问题: I have changes to a file, plus a new file, and would like to use git stash to put them away while I switch to another task. 我对一个文件进行了更改,再加上一个新文件,并希......

技术盛宴 今天 39 0 Geopandas入门 | 01-地理数据介绍

01-地理数据介绍 1.1 Python地理空间矢量数据简介 %matplotlib inlineimport pandas as pdimport geopandas 导入地理数据 地理空间数据通常可以从特定的GIS文件格式或数据存储中获得,如...

酱肉包- 今天 25 0 OSChina 周三乱弹 —— 我是不是也有王室血统

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑推荐,《我们》- 陈奕迅 《我们》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子OSC :快抬头看天!!! 雨后还有彩虹...

小小编辑 今天 59 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSCHINA 社区

关于我们 联系我们 合作伙伴 Open api

在线工具

码云 Gitee.com 企业研发管理 CopyCat-代码克隆检测 实用在线工具

微信公众号

微信公众号

OSCHINA APP

聚合全网技术文章,根据你的阅读喜好进行个性推荐

下载 APP ©OSCHINA(OSChina.net) 工信部 开源软件推进联盟 指定官方社区 深圳市奥思网络科技有限公司版权所有 粤ICP备12009483号 返回顶部 顶部
您可能感兴趣的文档:

--结束END--

本文标题: Mysql 使用存储过程动态批量添加数据

本文链接: https://www.lsjlt.com/news/7839.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作