MySql 游标

复制代码
-- 定义分隔符为 //
DELIMITER //
    
-- 创建存储过程
CREATE PROCEDURE bat_insert_data()
BEGIN
    -- 定义变量,提示:定义变量语句 需要放在 定义游标语句 之前
    declare var_id int;
    declare var_tableName varchar(128);
 
    -- 定义游标查询结束标识
    declare done int default false;
    -- 定义游标
    declare cur cursor for select id, TableName FROM crm_wf_form     ;
    -- 当 fetch 游标未发现数据时,done 置为 TRUE
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    -- 开启游标
    open cur;
 
    -- 游标遍历数据:
    read_loop: loop
        fetch cur into var_id, var_tableName;
        
        if done then
            leave read_loop;
        end if;
        
        # 在这里处理每一行数据
        IF EXISTS (
        SELECT * FROM crm_wf_form_range WHERE DeptID=10 and FormID = var_id
    ) THEN
        SELECT 'Table exists.';
    ELSE
        insert into crm_wf_form_range (FormID,DeptID,UserID) VALUES (var_id,10,0);
    END IF;
        
        
    end loop;
    -- 关闭游标
    close cur;
-- 存储过程结束
END //
 
-- 恢复定义分隔符为 ;
DELIMITER ;
 
SHOW PROCEDURE STATUS;
 
CALL bat_insert_data();
 
DROP PROCEDURE IF EXISTS bat_insert_data;


    
复制代码

注意分号,mysql要求严格

posted @   竹殇  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示