2016-12-27 1 views
1

Existe-t-il une commande SQL standard qui supprime toutes les vues d'une table lorsqu'elle est supprimée?SQL: suppression des vues lors de la suppression d'une table

+1

quelle base de données? tag – GurV

+0

@GurwinderSingh Pas de base de données spécifique, je sais le faire dans chaque type de base de données, mais j'essaie de trouver un moyen qui marche sur tous, c'est pourquoi j'ai dit une "commande SQL standard" :) – m2008m1033m

+0

Je pourrais voir pour faire cela serait de construire une procédure qui accepte en entrée le nom de la table et la base de données puis boucles si les dépendances de chaque vue à la recherche de cette table et si trouvé, supprime la vue. Comme chaque base de données implémente sa propre méthode de listage des dépendances, vous devrez écrire une logique spécifique à chaque base de données. Personnellement, je ne vois pas d'autre moyen. – xQbert

Répondre

2

Non, il n'existe aucun moyen standard pour supprimer une table et toutes les vues associées. Je sais que Postgres a une option CASCADE mais c'est une implémentation spécifique - MySQL accepte CASCADE mais ne fait absolument rien avec.

2

Il n'existe pas de commande normalisée pour tous les rdms qui suppriment une table et ses vues bornées en une seule opération.

+1

C'est faux. Dans Postgres, vous pouvez utiliser l'option 'cascade' pour supprimer les vues –

+0

Vous avez raison. J'ai mis à jour la réponse pour noter qu'il n'y a pas de commande standardisée. Voici la commande déroulante Postgres avec les options CASCADE. https://www.postgresql.org/docs/9.1/static/sql-droptable.html –