USE test; DROPPROCEDURE IF EXISTS sp_switch_group_trade; -- 声明结束标记,防止遇到;就结束 DELIMITER //; CREATEPROCEDURE sp_switch_group_trade () -- 作者:杨龙 -- 功能:将blog分表中的行业转换到主表中 BEGIN -- 变量申明 DECLARE v_trade VARCHAR (20) ; DECLARE v_id BIGINT ; DECLARE end_flag BOOLEANDEFAULTFALSE ; -- 游标查询转换分表中的行业 DECLARE cur CURSORFOR SELECT CASE t.trade_id WHEN'100100' THEN'1' WHEN'100101' THEN'2' WHEN'100102' THEN'3' WHEN'100103' THEN'4' WHEN'100104' THEN'5' ELSE'0' END trade, t.id FROM industry t WHERE t.status ='1' ; -- 游标标记 DECLARE CONTINUE HANDLER FORNOT FOUND SET end_flag =TRUE ; --打开游标,开始逐行读取 OPEN cur ; read_loop : LOOP -- 获取游标数据 FETCH cur INTO v_trade,v_id; -- 循环跳出判断 IF end_flag THEN LEAVE read_loop; END IF ; -- 操作执行语句块 UPDATE main_trade SET trade = v_trade WHERE group_id = v_id ; END LOOP ; CLOSE cur ; END ;