

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

A instrução `ALTER VIEW` permite alterar várias propriedades de uma visualização existente, e o Aurora DSQL é compatível com a sintaxe completa do PostgreSQL referente a esse comando.

## Sintaxe compatível
<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 [, ... ] )
```

## Descrição
<a name="alter-view-description"></a>

`ALTER VIEW` altera várias propriedades auxiliares de uma visualização. (Se você quiser modificar a consulta de definição da visualização, use`CREATE OR REPLACE VIEW`.) Para usar `ALTER VIEW`, a visualização deve pertencer a você. Para alterar o esquema de uma visualização, você também deve ter privilégios `CREATE` no novo esquema. Para alterar o proprietário, você deve ser capaz de aplicar `SET ROLE` ao novo perfil de propriedade e esse perfil deve ter privilégios `CREATE` no esquema da visualização.

## Parâmetros
<a name="alter-view-parameters"></a>

**`name`**  
O nome (opcionalmente qualificado para o esquema) de uma visualização existente. 

**`column_name`**  
Nome de uma coluna existente ou novo nome para uma coluna existente.

**`IF EXISTS`**  
Não gera um erro se a visualização não existir. Um aviso é emitido nesse caso.

**`SET/DROP DEFAULT`**  
Esses formulários definem ou removem o valor padrão de uma coluna. O valor padrão de uma coluna da visualização é substituído em qualquer comando `UPDATE` ou `INSERT` no qual o destino seja a visualização.

**`new_owner`**  
O nome de usuário do novo proprietário da visualização.

**`new_name`**  
O nome da nova visualização.

**`new_schema`**  
O novo esquema para a visualização.

**`SET ( view_option_name [= view_option_value] [, ... ] )`**  
Define uma opção de visualização. As seguintes opções são oferecidas:  
+ `check_option (enum)`: altera a opção de verificação da visualização. O valor deve ser `local` ou `cascaded`.
+ `security_barrier (boolean)`: altera a propriedade de barreira de segurança da visualização.
+ `security_invoker (boolean)`: altera a propriedade do invocador de segurança da visualização.

**`RESET ( view_option_name [, ... ] )`**  
Redefine uma opção de visualização, mudando-a para o valor padrão.

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

Mudar o nome da visualização `foo` para `bar`:

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

Anexar um valor de coluna padrão a uma visualização atualizável:

```
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
```

## Compatibilidade
<a name="alter-view-compatibility"></a>

`ALTER VIEW` é uma extensão do PostgreSQL do padrão SQL que o Aurora DSQL aceita.