[COMMENT]

빠른 업무적응을 위해서 최소 하루에 한개 이상씩 프로시저를 생성하는 연습을 할 예정이다..

프로시저 생성을 못할 경우에는 퇴근후 공부한 내용에 대해 포스팅을 진행할 생각인데, 

공부시간보다 포스팅 시간이 더 길어져서.. 잘 될지 모르겠다.. 



MYSQL 프로시저 매개변수와 동적쿼리 예제_1


1. 조회용 테이블 생성


create table GET_DATA(getData varchar(20));



2. 동적쿼리 테스트용 프로시저 생성 


DELIMITER //


CREATE  PROCEDURE `SP_DYN`(

IN TBL_NAME varchar(255))


BEGIN

 

DECLARE _STATEMENT VARCHAR(2500);

  

    SET _STATEMENT = CONCAT('SELECT * ');

 

    SET _STATEMENT = CONCAT(_STATEMENT, ' FROM ',TBL_NAME,' WHERE 1=1 ');

 

 

    SET _STATEMENT = CONCAT(_STATEMENT);       

 

    SET @STATEMENT = _STATEMENT;

 

    PREPARE DYNQUERY FROM @STATEMENT;

 

    EXECUTE DYNQUERY;

 

    DEALLOCATE PREPARE DYNQUERY;

 

 

END //


DELIMITER ;




간단하지만 응용 가능성을 가진 코드이다 


보통 SET _SATATMENT 부분을 지우고 select * from table 같은 일반 쿼리를 실행해도 문제없이 돌아간다


하지만 문자열로 저장을 하게해서 매개변수로 테이블명을 넘겨주는 구조인것이다


매개변수에따라 동적인 쿼리를 구현할수있다는게 프로시저의 또다른 장점이다 



3. 프로시저 실행 결과 


CALL SP_DYN('GET_DATA');   # 테이블명(GET_DATA)를 매개변수로 입력하여 프로시저 호출


※ 출처


Mysql-Procedure프로시저-개념과-예제 : http://epthffh.tistory.com/entry/Mysql-Procedure프로시저-개념과-예제 [물고기 개발자의 블로그]




+ Recent posts