ALTER VIEW

뷰와 연결 된 메타 데이터를 변경 합니다. 보기의 정의를 변경 하 고, 보기의 이름을 다른 이름으로 변경 하 고,을 설정 하 여 뷰의 메타 데이터를 설정 하 고 설정/해제할 수 있습니다 TBLPROPERTIES .

RENAME

기존 뷰의 이름을 바꿉니다. 새 뷰 이름이 원본 데이터베이스에 이미 있으면 TableAlreadyExistsException 이 throw 됩니다. 이 작업은 데이터베이스 간에 뷰를 이동 하는 것을 지원 하지 않습니다.

뷰가 캐시 되는 경우 명령은 뷰의 캐시 된 데이터와이를 참조 하는 모든 종속 항목을 지웁니다. 뷰를 다음에 액세스할 때 뷰의 캐시가 지연 됩니다. 이 명령은 뷰의 종속 항목을 캐시 되지 않은로 그대로 둡니다.

구문

ALTER VIEW view_identifier RENAME TO view_identifier

매개 변수

  • view_identifier

    선택적으로 데이터베이스 이름으로 정규화 된 뷰 이름입니다.

    구문과

SET

기존 보기의 속성을 하나 이상 설정 합니다. 속성은 키 값 쌍입니다. 속성의 키가 있으면 값이 새 값으로 바뀝니다. 속성의 키가 없는 경우 키-값 쌍이 속성에 추가 됩니다.

구문

ALTER VIEW view_identifier SET TBLPROPERTIES ( property_key = property_val [ , ... ] )

매개 변수

  • view_identifier

    선택적으로 데이터베이스 이름으로 정규화 된 뷰 이름입니다.

    구문과

  • property_key

    속성 키입니다. 키는 점으로 구분 된 여러 부분으로 구성 될 수 있습니다.

    구문과

뷰 속성 설정 해제

기존 뷰의 속성을 하나 이상 삭제 합니다. 지정 된 키가 없으면 예외가 throw 됩니다. IF EXISTS예외를 방지 하려면를 사용 합니다.

구문

ALTER VIEW view_identifier UNSET TBLPROPERTIES [ IF EXISTS ]  ( property_key [ , ... ] )

매개 변수

  • view_identifier

    선택적으로 데이터베이스 이름으로 정규화 된 뷰 이름입니다.

    구문과

  • property_key

    속성 키입니다. 키는 점으로 구분 된 여러 부분으로 구성 될 수 있습니다.

    구문과

ALTER VIEW AS SELECT

뷰의 정의를 변경 합니다. SELECT문은 유효 해야 하 고가 있어야 합니다 view_identifier .

구문

ALTER VIEW view_identifier AS select_statement

ALTER VIEW 문에서 SET SERDE 또는 속성을 지원 하지 않습니다 SET SERDEPROPERTIES .

매개 변수

  • view_identifier

    선택적으로 데이터베이스 이름으로 정규화 된 뷰 이름입니다.

    구문과

  • select_statement

    뷰의 정의입니다. 자세한 내용은 선택 을 참조 하세요.

예제

-- Rename only changes the view name.
-- The source and target databases of the view have to be the same.
-- Use qualified or unqualified name for the source and target view.
ALTER VIEW tempdb1.v1 RENAME TO tempdb1.v2;

-- Verify that the new view is created.
DESCRIBE TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
|                    col_name|data_type |comment|
+----------------------------+----------+-------+
|                          c1|       int|   null|
|                          c2|    string|   null|
|                            |          |       |
|# Detailed Table Information|          |       |
|                    Database|   tempdb1|       |
|                       Table|        v2|       |
+----------------------------+----------+-------+

-- Before ALTER VIEW SET TBLPROPERTIES
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
|                    col_name| data_type|comment|
+----------------------------+----------+-------+
|                          c1|       int|   null|
|                          c2|    string|   null|
|                            |          |       |
|# Detailed Table Information|          |       |
|                    Database|   tempdb1|       |
|                       Table|        v2|       |
|            Table Properties|    [....]|       |
+----------------------------+----------+-------+

-- Set properties in TBLPROPERTIES
ALTER VIEW tempdb1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );

-- Use `DESCRIBE TABLE EXTENDED tempdb1.v2` to verify
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+-----------------------------------------------------+-------+
|                    col_name|                                            data_type|comment|
+----------------------------+-----------------------------------------------------+-------+
|                          c1|                                                  int|   null|
|                          c2|                                               string|   null|
|                            |                                                     |       |
|# Detailed Table Information|                                                     |       |
|                    Database|                                              tempdb1|       |
|                       Table|                                                   v2|       |
|            Table Properties|[created.by.user=John, created.date=01-01-2001, ....]|       |
+----------------------------+-----------------------------------------------------+-------+

-- Remove the key `created.by.user` and `created.date` from `TBLPROPERTIES`
ALTER VIEW tempdb1.v2 UNSET TBLPROPERTIES ('created.by.user', 'created.date');

--Use `DESC TABLE EXTENDED tempdb1.v2` to verify the changes
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
|                    col_name| data_type|comment|
+----------------------------+----------+-------+
|                          c1|       int|   null|
|                          c2|    string|   null|
|                            |          |       |
|# Detailed Table Information|          |       |
|                    Database|   tempdb1|       |
|                       Table|        v2|       |
|            Table Properties|    [....]|       |
+----------------------------+----------+-------+

-- Change the view definition
ALTER VIEW tempdb1.v2 AS SELECT * FROM tempdb1.v1;

-- Use `DESC TABLE EXTENDED` to verify
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+---------------------------+-------+
|                    col_name|                  data_type|comment|
+----------------------------+---------------------------+-------+
|                          c1|                        int|   null|
|                          c2|                     string|   null|
|                            |                           |       |
|# Detailed Table Information|                           |       |
|                    Database|                    tempdb1|       |
|                       Table|                         v2|       |
|                        Type|                       VIEW|       |
|                   View Text|   select * from tempdb1.v1|       |
|          View Original Text|   select * from tempdb1.v1|       |
+----------------------------+---------------------------+-------+