`
xxxx1243
  • 浏览: 16771 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

mysql 循环存储过程

阅读更多
[u][/u]-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `splitStringTotalFunction`(  
    f_string varchar(1000),f_delimiter varchar(5)  
) RETURNS int(11)
BEGIN 
  declare returnInt int(11);  
  if length(f_delimiter)=2  then 
     return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')))/2;  
  else      
     return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));  
  end if;  
END




-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `splitStringFunction`(  
    f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
BEGIN 
  declare result varchar(255) default '';  
  set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));  
  return result;  
END







set i = 1;
if(i_inventoryID is not null and length(i_inventoryID) <> 0) then 
    while i <= splitStringTotalFunction(i_inventoryID,',')  
        do  
            set dictCode = splitStringFunction(i_inventoryID,',',i);  
            /*终端料仓库盘盈rfid字符串*/
            call stockTerminalGainRfidsProcedure(dictCode,null,null,stockTerminalGainRfids);
            if(stockTerminalGainRfids <> '' and stockTerminalGainRfids is not null) then
                set stockGainRfids = concat('',stockTerminalGainRfids,'' ,',') ;
            end if;
        set i = i + 1;  
    end while;
end if;




set i = 1;
if(i_inventoryID is not null and length(i_inventoryID) <> 0) then 
    while i <= splitStringTotalFunction(i_inventoryID,',')  
        do  
            set dictCode = splitStringFunction(i_inventoryID,',',i);  
            /*实体库盘盈rfid字符串*/
            call stockStoreGainRfidsProcedure(dictCode,null,null,stockStoreGainRfids);
            if(stockStoreGainRfids <> '' and stockStoreGainRfids is not null) then
                    set rfid_temp = concat('',stockStoreGainRfids,'' ,',') ;
            end if;
        set i = i + 1;  
    end while;
end if;

if(stockGainRfids <> '' and stockGainRfids is not null) then
    set stockGainRfids = concat(stockGainRfids,rfid_temp) ;
else
    set stockGainRfids = rfid_temp ;
end if;


set @ch = substring(stockGainRfids, -1, 1);
if(@ch = ',') then
    set stockGainRfids = left(stockGainRfids, CHAR_LENGTH(stockGainRfids) - 1);
end if;
分享到:
评论

相关推荐

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    Mysql存储过程常用语句模板

    Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三...

    MySQL实现创建存储过程并循环添加记录的方法

    在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的操作,用于执行复杂的业务逻辑。创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在...

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    mysql存储过程循环表

    一个简单易理解的mysql存储过程 循环表操作 使用游标

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    mysql经典教程+mysql存储过程讲解

    在存储过程中,还可以使用条件语句(如IF-ELSE)和循环结构(如WHILE或LOOP),使得处理逻辑更加灵活。 接下来,我们讨论触发器。触发器是一种特殊的存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)...

    mysql存储过程——用于数据库的备份与还原

    这一步可能需要对每个表进行循环,或者如果存储过程支持动态SQL,可以更高效地实现。 4. **自定义备份表**:为了允许用户选择要备份的特定表,存储过程需要接受参数,比如表名的列表,然后根据这些参数来决定哪些表...

    MySQL存储过程学习

    2. 在存储过程中,可以使用流程控制语句如`IF...ELSE`、`CASE`、`WHILE`和`LOOP`来实现逻辑判断和循环。 3. 使用`BEGIN`和`END`来标记存储过程的开始和结束。 4. 使用`CALL`关键字来调用已创建的存储过程。 例如,...

    MySQL 存储过程入门到精通

    MySQL存储过程是数据库管理系统中的一个重要特性,它允许程序员或数据库管理员预先定义一组SQL语句,形成一个可重用的逻辑单元。在这个“MySQL存储过程入门到精通”资料中,你将深入理解存储过程的原理、创建、调用...

    MySQL数据库存储过程

    存储过程可以包含控制流语句,如条件判断(IF-ELSE)和循环(WHILE, FOR),使得复杂的业务逻辑能够在数据库层面实现,而无需过多依赖应用程序。此外,存储过程还可以具有参数,允许灵活地传入和传出数据,增强了其...

    mysql 查询存储过程的 sql 语句.docx

    ### MySQL 查询存储过程详解 #### 一、存储过程概述 MySQL 存储过程是一种存储在 MySQL 服务器中的 SQL 代码段,它能够被多个客户端多次调用。存储过程的主要优势在于能够简化复杂的 SQL 查询,执行常见的任务,...

    mysql创建存储过程

    ### MySQL 创建存储过程详解 #### 一、存储程序概述 **存储程序**是可以在MySQL服务器中定义并存储的一组SQL语句。它们的功能类似于过程化的编程语言中的函数或过程,可以封装复杂的逻辑,并且能够在数据库层面...

    \MySQL 5.0 存储过程.pdf

    根据提供的文档信息,本文将深入解析《MySQL 5.0 存储过程》这一主题,重点探讨存储过程的概念、特点以及在 MySQL 5.0 中的应用。存储过程是数据库管理系统中一项重要的功能,它允许开发者编写可重用的 SQL 代码块,...

    MySQL存储过程实战SQL脚本

    能学到什么:可以学会如何使用MySQL创建无参存储过程、有参存储过程、IF-ELSE存储过程、WHILE循环存储过程、CASE-WHEN条件控制存储过程、REPEAT UNTIL循环存储过程、LOOP循环存储过程。 阅读建议:提前安装好MySQL的...

    MYSQL的存储过程实例文档

    1. **增强SQL的功能与灵活性**:存储过程可以使用流程控制语句,这使得它能够执行复杂的逻辑处理,比如条件分支和循环等。 2. **组件化编程**:一旦存储过程被创建,就可以在多个地方重复调用而无需重新编写相同的...

    MySQL存储过程经典教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这个经典教程旨在深入探讨存储过程的各个方面,帮助读者掌握这一强大的数据库编程工具。 1. **存储...

    MySQL存储过程.pdf

    MySQL存储过程 MySQL存储过程(Stored Procedure)是一种复杂的数据库对象,允许用户将多个SQL语句组合成一个单一的执行单元,以提高数据库的性能和可维护性。下面是 MySQL 存储过程的相关知识点: 存储过程的定义...

    Mysql5存储过程中文详解

    从给定的文件信息来看,文章主要探讨的是MySQL5.0版本中新引入的存储过程功能。存储过程在数据库管理系统中扮演着重要的角色,它允许开发者编写可重用的代码块,这些代码块可以执行一系列复杂的数据库操作。在MySQL...

Global site tag (gtag.js) - Google Analytics