工作中遇到数据库迁移问题,需要先查询出一张表的ID,然后添加到另外的三方表里面,所以写了这个存储过程,在此做笔记。
DROP PROCEDURE
IF EXISTS useCursor;
delimiter //
/*建立 存储过程 create */
CREATE PROCEDURE useCursor ()
BEGIN
/*局部变量的定义 开始*/
DECLARE tmpName VARCHAR (200) DEFAULT '' ;
DECLARE id CURSOR FOR
SELECT id FROM library_directory_t ldt WHERE ldt.app_id = '2a372f71029848aa8ac7cb9e085821aa';
DECLARE
CONTINUE HANDLER FOR SQLSTATE '02000'
SET tmpname = NULL ;
/*局部变量的定义 结束*/
/*开游标*/
OPEN id ;
/*游标向下走一步*/
FETCH id INTO tmpName ;
/* 循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开 */
WHILE (tmpname IS NOT NULL) DO
/* 添加数据 */
INSERT INTO netdisc_admin_org_dir_t (id, org_id, dir_id)
VALUES(REPLACE (UUID(), "-", ""),'ed725fd6aaa4463789df2059cce65e3c',tmpName) ;
/*游标向下走一步*/
FETCH id INTO tmpName ;
END
WHILE ;
CLOSE id ;
END ;//
CALL useCursor ()