10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

26.3.48 INFORMATION_SCHEMA视图表

的观点表提供关于数据库中视图的信息。你必须有显示视图访问该表的权限。

的观点表有这些列:

  • TABLE_CATALOG

    视图所属的目录的名称。这个值总是def

  • TABLE_SCHEMA

    视图所属的模式(数据库)的名称。

  • TABLE_NAME

    视图的名称。

  • VIEW_DEFINITION

    选择提供视图定义的语句。这一栏包含了你在创建表显示创建视图产生。跳过前面的单词选择跳过单词检查选项.假设最初的表述是:

    CREATE VIEW v AS SELECT s1 FROM s1 WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION

    然后视图定义看起来像这样:

    SELECT s2,s1 FROM WHERE s1 >
  • CHECK_OPTION

    的值CHECK_OPTION属性。取值为没有一个级联,或当地的

  • IS_UPDATABLE

    MySQL设置了一个标志,称为视图更新标志创建视图时间。旗帜设置为是的(真正的)如果更新而且删除(以及类似的操作)对于视图是合法的。否则,将标志设置为没有(假)。的IS_UPDATABLE的观点表显示此标志的状态。这意味着服务器总是知道视图是否可更新。

    如果一个视图是不可更新的,语句更新删除,插入是非法的,并且被拒绝。(即使视图是可更新的,也不可能插入到其中;详细信息请参见第25.5.3节“可更新和可插入视图”)。

  • 定义者

    创建视图的用户的帐户,在user_name“@”host_name格式。

  • SECURITY_TYPE

    视图SQL安全的特点。取值为定义者调用程序

  • CHARACTER_SET_CLIENT

    的会话值character_set_client视图创建时的系统变量。

  • COLLATION_CONNECTION

    的会话值collation_connection视图创建时的系统变量。

笔记

MySQL允许不同sql_mode设置来告诉服务器要支持的SQL语法类型。例如,您可以使用ANSISQL模式,以确保MySQL正确解释标准SQL连接操作符,双栏(||)。如果随后创建连接项的视图,则可能会担心更改sql_mode设置为不同于ANSI可能导致视图无效。但事实并非如此。无论您如何编写视图定义,MySQL总是以同样的方式以规范的形式存储它。下面是一个示例,它展示了服务器如何将双栏连接操作符更改为aCONCAT ()功能:

SET sql_mode = 'ANSI';查询OK, 0 rows affected (0.00 sec) mysql> CREATE VIEW test。SELECT 'a' | ' | 'b' AS col1;查询OK, 0 rows affected (0.00 sec) mysql> SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA。TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';+----------------------------------+ | VIEW_DEFINITION  | +----------------------------------+ | 选择concat (a, b)的col1 ` | +----------------------------------+ 1行集(0.00秒)

以规范形式存储视图定义的优点是稍后对的值所做的更改sql_mode不要从视图影响结果。然而,一个附加的结果是注释在选择被服务器从定义中剥离。