2017-10-16 7 views
0

Existe-t-il une commande permettant de déterminer si une relation donnée est table ou view?Commande permettant de distinguer une table d'une vue

La méthode d'essai et d'erreur que je utilise est de faire:

SHOW CREATE VIEW table_name 

Si c'est un table, pas un view, mon logiciel de base de données (Presto en DBeaver) me donne une erreur:

Relation table_name is a table , not a view

Je suppose que cette erreur provient d'une commande similaire exécutée en interne pour valider ma requête. Si c'est un view, la commande bien sûr fonctionne.

+3

Si vous utilisez 'SHOW CREATE ..', vous ** ciblez ** un moteur de base de données spécifique - c'est-à-dire non standard SQL –

+1

La méthode standard pour interroger les métadonnées est le [Schéma d'information] (https: // en.wikipedia.org/wiki/Information_schema). Si * votre * système de base de données l'implémente je ne pourrais pas dire. Notez également que, autant que possible, vous * ne devriez pas * distinguer les tables et les vues. Vous devriez être en mesure de remplacer une table avec une vue (et vice versa) et ne pas invalider le code existant. –

Répondre

1

Le tableau suivant affiche un tableau des informations sur toutes les tables disponibles, y compris qui sont view s et qui sont table s:

SELECT * FROM information_schema.tables 

Affichez Information Schema pour plus de détails.