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

Mysql 使用存储过程动态批量添加数据循环批量插入数据 — 创建存储过程 create procedure my_procedure01(in num int(2),out ii int(2)) begin declare i int…

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

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

 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6757.html

(0)
上一篇 2023-04-04
下一篇 2023-04-04

相关推荐

  • Python中使用timedelta函数进行时间操作

    Python中使用timedelta函数进行时间操作在Python编程中,处理日期和时间是非常常见的操作。Python中的datetime模块提供了许多方便的函数来处理日期和时间。在datetime模块中,timedelta类提供了一些有用的方法来计算日期和时间之间的差值,或者在时间上进行加减。

    2024-04-23
    28
  • Redis知识点(二)

    Redis知识点(二)五种数据类型 首先 Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。 redisObject 最主要的信息如上图所示:type 表示一个 value 对象…

    2023-02-13
    107
  • mongodb使用案例_mongodb使用场景

    mongodb使用案例_mongodb使用场景mongodb安装完成后一直无法使用IP连接: 如果MongoDB服务未安装,则直接执行下面命令安装,无法自动创建的文件需要手动去创建。 mongod –dbpath=E:mongodbdatad…

    2023-04-04
    104
  • Redis-nosql应用场景[通俗易懂]

    Redis-nosql应用场景[通俗易懂]
    》演变过程 》数据的获取不单单单单是从mysql等关系型数据库中获取了 》商品的基本信息 》商品的评价,描述等 》商品的图片 》商品的波段性的热点高频信息 …

    2023-04-04
    124
  • 使用Python制作简单的休息提醒程序

    使用Python制作简单的休息提醒程序随着计算机和手机的广泛使用,长时间的工作或使用电子设备已经成为了现代人的常态。长时间的使用电子设备会让我们的身体和眼睛感到疲劳,而长时间的工作会让我们的身体处于高负荷的状态,这都会对我们的健康造成一定的影响。所以,在我们的工作和使用电子设备的时候,最好能够定时地休息一下,来缓解身体的疲劳。如何做到定时休息呢?这篇文章中,我们将介绍如何使用Python制作一个简单的休息提醒程序,以便我们在工作或使用电脑的时候能够定时休息。

    2023-12-17
    63
  • 记一次线上问题 → 对 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面认知

    记一次线上问题 → 对 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面认知开心一刻 老婆痛经,躺在沙发上,两岁的女儿看着她问道 女儿:妈妈,你怎么了 老婆:妈妈肚子痛 女儿:哦,妈妈你头疼 老婆:不是头疼,妈妈是肚子疼 女儿用她的不锈钢饭碗砸向老婆的额头,说道:妈妈,你哪里

    2023-04-22
    104
  • 502 bad gateway什么原因_502 bad gateway手机

    502 bad gateway什么原因_502 bad gateway手机

    2023-04-19
    121
  • Jupyter安装方法

    Jupyter安装方法Jupyter是一款支持多种编程语言的交互式计算环境,可以帮助用户轻松地将代码、文本、图像、视频等多种形式的内容融合在一起,进行数据分析和数据可视化。

    2024-05-11
    19

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注