mysql-select結果集循環


DROP PROCEDURE IF EXISTS proc_tmp;
CREATE PROCEDURE proc_tmp()

BEGIN

/*用於判斷是否結束循環*/
DECLARE done INT DEFAULT 0;
/*用於存儲結果集記錄*/
DECLARE _om_id INT ( 11 );

/*定義游標*/
DECLARE idCur CURSOR FOR
SELECT DISTINCT om_id FROM tt_order_attr_mapping WHERE om_id NOT IN ( SELECT DISTINCT om_id FROM tt_order_attr_mapping WHERE s_attr = 'IS_UNDER_CALL' );
/*定義 設置循環結束標識done值怎么改變 的邏輯*/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
/*打開游標*/
OPEN idCur;
/* 循環開始 */
REPEAT
FETCH idCur INTO _om_id;
IF NOT done THEN
/*數值為非0,MySQL認為是true*/
INSERT INTO tt_order_attr_mapping ( `om_id`, `s_attr`, `d_attr`, `defaultvalue`, `update_userid`, `update_time` ) VALUES ( _om_id, 'IS_UNDER_CALL', NULL, '0', NULL, NULL );
END IF;
UNTIL done END REPEAT;
/*關閉游標*/
CLOSE idCur;

END;
/* 循環結束 */
CALL proc_tmp();
/*刪除臨時存儲過程*/
DROP PROCEDURE proc_tmp;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM