MYSQLMYSQL存储过程与游标学习(二)

-- 处理试剂关联方法

-- DROP PROCEDURE UpdateKitRelateMethod;

DELIMITER //

CREATE PROCEDURE UpdateKitRelateMethod()
BEGIN
	DECLARE GKI INT(11) UNSIGNED;
	DECLARE RMI INT(11) UNSIGNED;
	DECLARE RMTI INT(11) UNSIGNED;
	DECLARE done INT DEFAULT false;
	
	DECLARE set_global_kit CURSOR FOR 
	(SELECT gk.id , gk.relate_method_id , m.method_type_id FROM global_kit gk
	LEFT JOIN method m ON m.id = gk.relate_method_id 
	WHERE gk.relate_method_id IS NOT NULL);
	
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;
	
	OPEN set_global_kit;
		al: LOOP
			
			FETCH set_global_kit INTO GKI, RMI, RMTI;
			
			UPDATE kit set relate_method_id = RMI , relate_method_type_id = RMTI
			WHERE from_id = GKI AND relate_method_type_id IS NULL;
			

		IF done THEN
			LEAVE al; 
		END IF; 
	END LOOP al;
	CLOSE set_global_kit;
	
END //
DELIMITER ;
发布了83 篇原创文章 · 获赞 27 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weweeeeeeee/article/details/103493768