mysql 用存储过程遍历结果集mysql
(业务场景:取A表中数据插入B表中) 使用存储过程 以下面两步:sql
--建立存储过程优化
DROPPROCEDUREIFEXISTS`proc_case`;
DELIMITER;;
CREATEDEFINER=`root`@`localhost`PROCEDURE`proc_case`()
BEGIN
DECLAREdoneINTDEFAULT0;
DECLAREroleIdVARCHAR(32);
DECLAREidCurCURSORFORSELECTA.idASroleIdFROM AWHEREA.TYPEBETWEEN1AND3;
DECLARECONTINUEHANDLERFORNOTFOUNDSETdone=1;
OPENidCur;
REPEAT
FETCHidCurINTOroleId;
IFNOTdoneTHEN
SET@uuids=REPLACE(UUID(),'-','');
INSERTINTOB (id,role_id,menu_id)VALUES(@uuids,roleId,'afac_k');
ENDIF;
UNTILdoneENDREPEAT;
CLOSEidCur;
END
;;
DELIMITER;
--执行并删除
CALLproc_case();ui
DROPPROCEDUREIFEXISTS proc_case;遍历
因为本人好久没有写存储过程了 很生疏了 因此记录下数据
发如今这样的业务场景(取A表中数据插入B表中)没有必要写存储过程太繁琐了存储过程
优化以下:cas
INSERTINTOB (id,role_id,menu_id)SELECT REPLACE(UUID(),'-',''),id,'afac_k'FROM Auuid