Computer/MySQL

트리거에서 테이블명 변수로 사용하여 실행하기

알찬돌삐 2012. 7. 12. 15:20
트리거나 프로시저에서 테이블명을 변수로 받아서 사용해야 할때가 있습니다.
이렇게 될 경우 캐쉬를 사용하지 못하지만,
그래도 긴 명령문을 간략하게 넘길수 있다는 장점은 있습니다.







트리거에서 테이블명 변수로 사용하여 실행하기

-우선 쿼리실행할 프로시져 생성- 
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  
              (",new.aa ,",", new.bb,",now())"; 
  CALL P_SQL_RESULT(@xSql); 



.

'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