web-dev-qa-db-fra.com

Comment récupérer la requête que j'ai utilisée pour créer une vue?

pour mon entreprise, j'ai créé une vue qui est utilisée pour l'exportation. Il y a peut-être un problème avec la requête utilisée pour créer cette table.

Voici donc ma question:

Est-il possible d'obtenir la requête que j'ai utilisée pour créer ladite table de visualisation?

5
Opaldes

Les définitions de vue sont stockées dans le schéma d'informations:

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
   WHERE TABLE_NAME = 'yourviewname'
12
mustaccio

Vous pouvez utiliser la fonction documentée SHOW CREATE VIEW view_name qui est documenté sur le site officiel de dev.MySQL.com:

Référence:
13.7.5.14 SHOW CREATE VIEW Syntaxe (Version 5.5)
14.7.5.13 SHOW CREATE VIEW Syntaxe (Version 5.7)

mysql> SHOW CREATE VIEW v\G 
 *************************** 1. ligne ******* ******************** 
 Vue: v 
 Créer vue: CRÉER ALGORITHME = NON DÉFINI 
 DÉFINITEUR = `bob` @ `localhost` 
 SQL SECURITY DEFINER VIEW 
` v` AS select 1 AS `a`, 2 AS` b` 
 character_set_client: latin1 
 collation_connection: latin1_swedish_ci
2
John aka hot2use

"show create view" vous fournira le DDL pour recréer la vue exactement comme elle est (complète avec l'instruction select).

show create view view_name_here \G

\ G est un format go amélioré (affiche les colonnes verticalement plutôt qu'horizontalement)

1
RMathis

Les définitions de vue sont stockées dans la table INFORMATION_SCHEMA.

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'viewnamehere'

si vous avez créé une vue "xyz" et après un certain temps, vous avez modifié cette vue, cette requête ci-dessus affichera à la fois la requête utilisée pour créer la vue et la requête pour modifier la vue.

Si vous ne souhaitez que la dernière requête d'affichage, vous pouvez simplement exécuter:

SHOW CREATE VIEW 'viewnamehere'

Cette requête vous montrera toutes les informations sur la vue comme character_set_client, collation_connection, DEFINER etc.

0
Manoj Kumar