

# `ALTER VIEW`
<a name="alter-view-syntax-support"></a>

`ALTER VIEW` 문을 사용하면 기존 뷰의 다양한 속성을 변경할 수 있으며 Aurora DSQL은 이 명령에 대한 모든 PostgreSQL 구문을 지원합니다.

## 지원되는 구문
<a name="alter-view-supported-syntax"></a>

```
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )
```

## 설명
<a name="alter-view-description"></a>

`ALTER VIEW`는 뷰의 다양한 보조 속성을 변경합니다. (뷰의 정의 쿼리를 수정하려면 `CREATE OR REPLACE VIEW`를 사용합니다.) `ALTER VIEW`를 사용하려면 뷰를 소유해야 합니다. 뷰의 스키마를 변경하려면 새 스키마에 대한 `CREATE` 권한도 있어야 합니다. 소유자를 변경하려면 새 소유 역할에 `SET ROLE`을 수행할 수 있어야 하며 해당 역할에 뷰의 스키마에 대한 `CREATE` 권한이 있어야 합니다.

## 파라미터
<a name="alter-view-parameters"></a>

**`name`**  
기존 뷰의 이름(선택적으로 스키마 지정)입니다.

**`column_name`**  
기존 열의 이름 또는 기존 열의 새 이름입니다.

**`IF EXISTS`**  
뷰가 없는 경우 오류가 발생하지 않습니다. 이 경우 알림이 발행됩니다.

**`SET/DROP DEFAULT`**  
이러한 양식은 열의 기본값을 설정하거나 제거합니다. 뷰 열의 기본값은 대상이 뷰인 `INSERT` 또는 `UPDATE` 명령으로 대체됩니다.

**`new_owner`**  
뷰의 새 소유자의 사용자 이름입니다.

**`new_name`**  
새 뷰의 이름입니다.

**`new_schema`**  
뷰의 새 스키마입니다.

**`SET ( view_option_name [= view_option_value] [, ... ] )`**  
뷰 옵션을 설정합니다. 지원되는 옵션은 다음과 같습니다.  
+ `check_option (enum)` - 뷰의 확인 옵션을 변경합니다. 값은 `local` 또는 `cascaded`여야 합니다.
+ `security_barrier (boolean)` - 뷰의 보안 장벽 속성을 변경합니다.
+ `security_invoker (boolean)` - 뷰의 security-invoker 속성을 변경합니다.

**`RESET ( view_option_name [, ... ] )`**  
뷰 옵션을 기본값으로 재설정합니다.

## 예제
<a name="alter-view-examples"></a>

`foo` 뷰의 이름을 `bar`로 변경:

```
ALTER VIEW foo RENAME TO bar;
```

업데이트 가능한 뷰에 기본 열 값을 연결:

```
CREATE TABLE base_table (id int, ts timestamptz);
CREATE VIEW a_view AS SELECT * FROM base_table;
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
INSERT INTO base_table(id) VALUES(1);  -- ts will receive a NULL
INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time
```

## 호환성
<a name="alter-view-compatibility"></a>

`ALTER VIEW`는 Aurora DSQL이 지원하는 SQL 표준의 PostgreSQL 확장입니다.