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要求严格

浙公网安备 33010602011771号