[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프로시저-개념과-예제 [물고기 개발자의 블로그]
'Database(DB) > mysql' 카테고리의 다른 글
[mysql] 커서(CORSUR) 간단 예제 (0) | 2018.09.16 |
---|---|
[mysql] 프로시저 예제_2 입력받은 매개변수에 따라 변화하는 값 테이블에 입력하는 프로시저 (0) | 2018.09.15 |
[mysql] 특정 구분자로 합쳐진 데이터 분리하기 (0) | 2018.09.11 |
[mysql] error Table './mysql/user' is marked as crashed and should be repaired (0) | 2018.09.10 |
[mysql] 프로시저 예제 Cursor 사용 (0) | 2018.09.05 |