트리거나 프로시저에서 테이블명을 변수로 받아서 사용해야 할때가 있습니다.
이렇게 될 경우 캐쉬를 사용하지 못하지만,
그래도 긴 명령문을 간략하게 넘길수 있다는 장점은 있습니다.
-우선 쿼리실행할 프로시져 생성-
CREATE DEFINER=`user`@`localhost` PROCEDURE `P_SQL_RESULT`(IN `xSql` TEXT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '쿼리실행'
BEGIN
SET @xSql = xSql;
PREPARE dSql FROM @xSql;
EXECUTE dSql ;
DEALLOCATE PREPARE dSql;
END
---------------------------------------------------------------------------------------------
트리그,평션,이벤트등에서 생성한 프로시져를 이용해 실행함
SET @nLOGTB = concat('LOG_' , SUBSTRING(NEW.HDATE,1,8));
SET @xSql = CONCAT("INSERT INTO ",@nLOGTB," (aa,bb,cc) VALUES
CREATE DEFINER=`user`@`localhost` PROCEDURE `P_SQL_RESULT`(IN `xSql` TEXT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '쿼리실행'
BEGIN
SET @xSql = xSql;
PREPARE dSql FROM @xSql;
EXECUTE dSql ;
DEALLOCATE PREPARE dSql;
END
---------------------------------------------------------------------------------------------
트리그,평션,이벤트등에서 생성한 프로시져를 이용해 실행함
SET @nLOGTB = concat('LOG_' , SUBSTRING(NEW.HDATE,1,8));
SET @xSql = CONCAT("INSERT INTO ",@nLOGTB," (aa,bb,cc) VALUES
'Computer > MySQL' 카테고리의 다른 글
mysql event (0) | 2012.08.10 |
---|---|
my.cnf (0) | 2012.08.10 |
SELECT COUNT(0) 은 COUNT(*) 와 같다? (0) | 2011.01.24 |
MySQL 서버 최적화 참고 문서 (0) | 2010.08.16 |
MySQL DataBase 서버 튜닝 - MySQL Administrator (0) | 2010.08.16 |