DROP VIEW - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

DROP VIEW

Supprime une vue de la base de données. Plusieurs vues peuvent être supprimées avec une seule commande DROP VIEW. La commande n’est pas réversible.

Privilèges requis

Les privilèges suivants sont requis pour DROP VIEW :

  • Superuser

  • Utilisateurs disposant du privilège DROP VIEW

  • Propriétaire de la vue

Syntaxe

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

Paramètres

IF EXISTS

Clause indiquant que si la vue spécifiée n’existe pas, la commande ne doit faire aucune modification et renvoyer un message selon lequel la vue n’existe pas, plutôt que de mettre fin avec une erreur.

Comme cette clause est utile lors de l’écriture de scripts, le script n’échoue pas si DROP VIEW s’exécute sur une vue non existante.

nom

Nom de la vue à supprimer.

CASCADE

Clause qui indique de supprimer automatiquement les objets qui dépendent de la vue, tels que d’autres vues.

Pour créer une vue qui ne dépend pas d’autres objets de base de données, tels que des vues et des tables, incluez la clause WITH NO SCHEMA BINDING dans la définition de vue. Pour de plus amples informations, veuillez consulter CREATE VIEW.

Notez que si vous incluez CASCADE et que le nombre d'objets de base de données supprimés atteint dix ou plus, il est possible que votre client de base de données ne répertorie pas tous les objets supprimés dans les résultats récapitulatifs. Cela est généralement dû au fait que les outils client SQL ont des limites par défaut sur les résultats renvoyés.

RESTRICT

Clause qui indique de ne pas supprimer la vue si des objets en dépendent. Il s’agit de l’action par défaut.

Exemples

L’exemple suivant supprime la vue appelée event :

drop view event;

Pour supprimer une vue qui comporte des dépendances, utilisez l’option CASCADE. Par exemple, imaginons que nous commencions avec une table appelée EVENT. Nous créons ensuite la vue eventview de la table EVENT, à l’aide de la commande CREATE VIEW, comme illustré dans l’exemple suivant :

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

Maintenant, nous créons une deuxième vue appelée myeventview, qui est basée sur la première vue eventview :

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

À ce stade, deux vues ont été créées : eventview et myeventview.

La vue myeventview est une vue enfant avec eventview en tant que parent.

Pour supprimer la vue eventview, la commande évidente à utiliser est la suivante :

drop view eventview;

Notez que si vous exécutez cette commande dans ce cas, vous obtenez l’erreur suivante :

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.

Pour résoudre le problème, exécutez la commande suivante (comme indiqué dans le message d’erreur) :

drop view eventview cascade;

Les deux vues eventview et myeventview ont été supprimées avec succès.

L’exemple suivant supprime la vue eventview si elle existe, ou ne fait rien et renvoie un message dans le cas contraire :

drop view if exists eventview;