mysql存储过程循环游标


每次都忘记存储过程循环咋写,直接做个备份

CREATE DEFINER=`ycl`@`%` PROCEDURE `insertSecurityLevel`()
BEGIN
    DECLARE isFlag INT DEFAULT TRUE;
    DECLARE companyId varchar(40);
    DECLARE memberShipId varchar(40);
    DECLARE levelId varchar(40); 

        
    DECLARE customer CURSOR FOR SELECT id, member_ship_id FROM quality_platform.member_ship_institutional_unit; #声明游标,语法:DECLARE 游标名称 CURSOR FOR 游标值

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET isFlag = FALSE; #游标中的内容循环执行完后将 isFlag 设置为flase

    OPEN customer; #打开先前声明的游标。

        FETCH customer INTO companyId, memberShipId;#取游标中的值,语法:FETCH cursor_name INTO var_name [, var_name] ...
        WHILE isFlag  IS TRUE DO
            
            SELECT id into levelId  from fmea.base_security_level where company_id = companyId 
            IF levelId is null THEN                  
               #sql语句
            END IF;

            


            FETCH customer INTO companyId, memberShipId;#取游标中的值
        END WHILE;
    CLOSE customer;#关闭游标

END

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM