

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

La instrucción `ALTER VIEW` permite cambiar varias propiedades de una vista existente y Aurora DSQL soporta toda la sintaxis de PostgreSQL para este comando.

## Sintaxis admitida
<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 [, ... ] )
```

## Descripción
<a name="alter-view-description"></a>

`ALTER VIEW` modifica varias propiedades auxiliares de una vista. (Si desea modificar la consulta que define la vista, utilice `CREATE OR REPLACE VIEW`). Para usar`ALTER VIEW`, debe ser propietario de la vista. Para modificar el esquema de una vista, también debe tener el privilegio `CREATE` en el nuevo esquema. Para modificar el propietario, debe poder utilizar `SET ROLE` en el nuevo rol de propietario y ese rol debe tener el privilegio `CREATE` en el esquema de la vista.

## Parameters
<a name="alter-view-parameters"></a>

**`name`**  
El nombre (opcionalmente cualificado por el esquema) de una vista existente. 

**`column_name`**  
Nombre de una columna existente o nombre nuevo para una columna existente.

**`IF EXISTS`**  
No genere un error si la vista no existe. En este caso, se emite un aviso.

**`SET/DROP DEFAULT`**  
Estas formas establecen o eliminan el valor predeterminado de una columna. El valor predeterminado para una columna de una vista se sustituye en cualquier comando `INSERT` o `UPDATE` donde el objetivo sea la vista.

**`new_owner`**  
El nombre de usuario del nuevo propietario de la vista.

**`new_name`**  
El nuevo nombre de la vista.

**`new_schema`**  
El nuevo esquema de la vista.

**`SET ( view_option_name [= view_option_value] [, ... ] )`**  
Establece una opción de vista. Las siguientes son las opciones admitidas:  
+ `check_option (enum)`: cambia la opción de comprobación de la vista. El valor debe ser `local` o `cascaded`.
+ `security_barrier (boolean)`: cambia la propiedad de barrera de seguridad de la vista.
+ `security_invoker (boolean)`: cambia la propiedad de invocador de seguridad de la vista.

**`RESET ( view_option_name [, ... ] )`**  
Restablece una opción de vista a su valor predeterminado.

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

Cambiar el nombre de la vista `foo` a `bar`:

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

Asociar un valor de columna predeterminado a una vista actualizable:

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

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

`ALTER VIEW` es una extensión de PostgreSQL del estándar SQL que Aurora DSQL admite.