web-dev-qa-db-ja.com

mysqlビューの定義を取得する方法は?

Show create view viewNameは、正しくフォーマットされたテキストを表示しません。正しい形式のSQLを取得するにはどうすればよいですか?

たとえば、create view v1 as select * from mysql.uerのようなビューを作成しましたが、次のように返されます。

CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER 
VIEW v1 AS 
    select 
        mysql.user.Host AS Host,
        mysql.user.User AS User,
        mysql.user.Password AS Password,
        mysql.user.Select_priv AS Select_priv,
        ... ..., 
        mysql.user.Grant_priv AS Grant_priv,
        mysql.user.References_priv AS References_priv,
        mysql.user.Index_priv AS Index_priv,
        mysql.user.Alter_priv AS Alter_priv
    from mysql.user

どうすれば元の定義を取得できますか?

8
user2400825
Show create view 'viewName'

create viewステートメントを使用してSQL定義を返します。

SELECT  VIEW_DEFINITION 
    FROM    INFORMATION_SCHEMA.VIEWS
    WHERE   TABLE_SCHEMA    = 'DATABASENAME' 
    AND     TABLE_NAME      = 'VIEWNAME';

定義のみを返します。

どちらもビュー定義を取得するのに適しています。

5
Pankaj Kumar