2010년 7월 8일 목요일

[MySQL Stored Procedure]View

CREATE VIEW Syntax

  CREATE [OR REPLACE]
  [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
  [DEFINER={USER|CURRENT_USER}]
  [SQL SECURITY {DEFINER|INVOKER}]
  VIEW view_name [(column list)]
  AS select_statement
  [WITH [CASCADE|LOCAL] CHECK OPTION]


 
ALGORITHM 종류
 - UNDEFINED : MySQL이 자체적으로 선택, 대부분 MERGE
 - MERGE : 뷰와 포함된 쿼리를 효율적인 방식으로 Merge해서 사용
 - TEMPTABLE : 뷰와 연결된 임시테이블을 만들고 사용, 인덱스를 전혀 사용 못함

 

 

뷰와 테이블의 차이
 - 뷰는 정의시점에 고정, 테이블에 컬럼이 추가되어도 반영되지 않음
 - SELECT문에서 system이나 user변수 사용 못함
 - 뷰 정의시 임시테이블 참고 못함
 - 트리거를 뷰에 연결시킬 수 없다
 - 뷰정의시 ORVER BY를 포함할 수 있으나 VIEW사용시 ORDER BY를 지정하면 정의된 ORDER BY는 무시됨

댓글 없음:

댓글 쓰기