DROP VIEW - Amazon Redshift

DROP VIEW

Elimina una vista de la base de datos. Puede eliminar varias vistas con un solo comando DROP VIEW. Este comando no es reversible.

Privilegios necesarios

Los siguientes privilegios son necesarios para DROP VIEW:

  • Superusuario

  • Usuarios con el privilegio DROP VIEW

  • Propietario de la vista

Sintaxis

DROP VIEW [ IF EXISTS ] name [, ... ] [ CASCADE | RESTRICT ]

Parámetros

IF EXISTS

Cláusula que indica que si la vista especificada no existe, el comando no debe realizar cambios y debe devolver un mensaje en el que se indique que la vista no existe, en lugar de terminar con un error.

Esta cláusula es útil cuando se realiza scripting, para que el script no produzca un error si DROP VIEW se ejecuta contra una vista que no existe.

name

Nombre de la vista que se eliminará.

CASCADE

Cláusula que indica que se deben eliminar automáticamente los objetos que dependen de la vista, como otras vistas.

Para crear una vista que no dependa de otros objetos de base de datos, como vistas y tablas, incluya la cláusula WITH NO SCHEMA BINDING en la definición de la vista. Para obtener más información, consulte CREATE VIEW.

Tenga en cuenta que si incluye CASCADE y el recuento de objetos de base de datos eliminados asciende a diez o más, es posible que su cliente de base de datos no muestre todos los objetos eliminados en los resultados del resumen. Por lo general, esto se debe a que las herramientas de cliente de SQL tienen limitaciones predeterminadas en los resultados devueltos.

RESTRICT

Cláusula que indica que no se debe eliminar la vista si tiene objetos dependientes. Esta acción es la predeterminada.

Ejemplos

En el siguiente ejemplo, se elimina la vista event.

drop view event;

Para eliminar una vista que tiene dependencias, use la opción CASCADE. Por ejemplo, supongamos que comenzamos con una tabla denominada EVENT. Luego, creamos la vista eventview de la tabla EVENT a través del comando CREATE VIEW, como se muestra en el siguiente ejemplo:

create view eventview as select dateid, eventname, catid from event where catid = 1;

Ahora, vamos a crear una segunda vista llamada myeventview, que se basa en la primera vista eventview.

create view myeventview as select eventname, catid from eventview where eventname <> ' ';

Se han creado dos vistas hasta el momento: eventview y myeventview.

La vista myeventview es una vista secundaria de la vista principal eventview.

Para eliminar la vista eventview, parece obvio que el comando que debe utilizarse es el siguiente:

drop view eventview;

Observe, no obstante, que si ejecuta este comando en este caso recibe el siguiente error:

drop view eventview; ERROR: can't drop view eventview because other objects depend on it HINT: Use DROP ... CASCADE to drop the dependent objects too.

Para solucionarlo, ejecute el siguiente comando (como se sugiere en el mensaje de error):

drop view eventview cascade;

Ambas vistas, eventview y myeventview, ahora se han eliminado correctamente.

En el siguiente ejemplo, se elimina la vista eventview, si existe. Si no es así, no se realiza ninguna acción y se devuelve un mensaje:

drop view if exists eventview;