Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Rimuove una vista dal database. È possibile rimuovere più viste con un singolo comando DROP VIEW. Questo comando è irreversibile.
Privilegi richiesti
Di seguito sono riportati i privilegi richiesti per DROP VIEW:
-
Superuser
-
Utenti con il privilegio DROP VIEW
-
Proprietario della visualizzazione
Sintassi
DROP VIEW [ IF EXISTS ] name [, ... ] [ CASCADE | RESTRICT ]
Parametri
- IF EXISTS
-
Clausola che indica che se la vista specificata non esiste, il comando non deve apportare modifiche e deve restituire un messaggio che la vista non esiste, piuttosto che terminare con un errore.
Questa clausola è utile durante lo scripting, quindi lo script ha esito positivo se DROP VIEW viene eseguito su una vista inesistente.
- name
-
Nome della vista da rimuovere.
- CASCADE
-
Clausola che indica di rimuovere automaticamente gli oggetti che dipendono dalla vista, come altre viste.
Per creare una vista che non dipende da altri oggetti del database, come viste e tabelle, includi la clausola WITH NO SCHEMA BINDING nella definizione della vista. Per ulteriori informazioni, consulta CREATE VIEW.
Tieni presente che se includi CASCADE e il numero di oggetti del database eliminati è pari o superiore a dieci, è possibile che il client del database non elenchi tutti gli oggetti eliminati nei risultati di riepilogo. Ciò è in genere dovuto al fatto che gli strumenti client SQL hanno limitazioni predefinite sui risultati restituiti.
- RESTRICT
-
Clausola che indica di non eliminare la vista se sono presenti oggetti che dipendono da essa. Questa operazione costituisce l'impostazione predefinita.
Esempi
L'esempio seguente rimuove la vista denominata event:
drop view event;
Per rimuovere una vista con dipendenze, utilizza l'opzione CASCADE. Ad esempio, supponiamo di iniziare con una tabella denominata EVENT. Creiamo quindi la vista eventview della tabella EVENT, usando il comando CREATE VIEW, come mostrato nel seguente esempio:
create view eventview as
select dateid, eventname, catid
from event where catid = 1;
Ora creiamo una seconda vista chiamata myeventview, che si basa sulla prima vista eventview:
create view myeventview as
select eventname, catid
from eventview where eventname <> ' ';
A questo punto, sono state create due viste: eventview e myeventview.
La vista myeventview è una vista figlio con eventview come padre.
Per eliminare la vista eventview, il comando da usare è il seguente:
drop view eventview;
Tieni presente che se esegui il comando in questo caso, viene restituito il seguente errore:
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.
Per rimediare, emettere il seguente comando (come suggerito nel messaggio di errore):
drop view eventview cascade;
A questo punto la rimozione delle due viste eventview e myeventview è stata completata.
Nell'esempio seguente viene rimossa la vista eventview se esiste oppure non viene eseguita alcuna operazione e viene restituito un messaggio se non esiste:
drop view if exists eventview;