DELIMITER $$ DROP PROCEDURE IF EXISTS `디비명`.`프로시저명` $$ CREATE PROCEDURE `디비명`.`프로시저명_merge`( IN 변수1 VARCHAR(32), IN 변수2 INT ) BEGIN DECLARE m_필드값1 VARCHAR(32); DECLARE m_필드값2 VARCHAR(32); DECLARE m_Done INT DEFAULT 0; /* 여기에 커서를 정의 합니다. */ DECLARE m_Cursor CURSOR FOR SELECT 필드1, 필드2 FROM 테이블명 WHERE 필드1 = 변수1 AND 필드2 = 변수2; /* 데이터가 없으면 m_Done에 1 */ DECLARE CONTINUE HANDLER FOR NOT FOUND SET m_Done=1; OPEN m_Cursor; /* 반복합니다. */ REPEAT /* 반환된 필드값을 변수에 담습니다. */ FETCH NEXT FROM m_Cursor INTO m_필드값1, m_필드값2; IF NOT m_Done THEN /* 수행할 쿼리리 여기에 작성합니다. */ INSERT INTO 테이블2( 필드명1, 필드명2 ) VALUES( m_필드값1, m_필드값2 ); END IF; /* m_Done이 1이 될때까지 반복 합니다. */ UNTIL m_Done END REPEAT; CLOSE m_Cursor; END $$ DELIMITER ;