如何获取mysql视图定义?

use*_*825 11 mysql view

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
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到我的原始定义?

小智 9

Show create view 'viewName'
Run Code Online (Sandbox Code Playgroud)

返回带有create view语句的 SQL 定义,而

SELECT  VIEW_DEFINITION 
    FROM    INFORMATION_SCHEMA.VIEWS
    WHERE   TABLE_SCHEMA    = 'DATABASENAME' 
    AND     TABLE_NAME      = 'VIEWNAME';
Run Code Online (Sandbox Code Playgroud)

只返回定义。

两者对于获取视图定义都是正确的。