暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

28.3.48 INFORMATION_SCHEMA VIEWS 表

由迪 2024-09-03
100

VIEWS表提供有关数据库中视图的信息。您必须具有 SHOW VIEW访问此表的权限。

VIEWS表包含以下列:

  • TABLE_CATALOG

    视图所属目录的名称。此值始终为def

  • TABLE_SCHEMA

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

  • TABLE_NAME

    视图的名称。

  • VIEW_DEFINITION

    SELECT提供视图定义的语句。此列包含您在生成的列中看到的大部分内容 。Create Table跳过SHOW CREATE VIEW之前的单词SELECT 并跳过单词WITH CHECK OPTION。假设原始语句为:

    CREATE VIEW v AS SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION;

    然后视图定义如下所示:

    SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1
  • CHECK_OPTION

    属性的值CHECK_OPTION。该值为NONECASCADE或之一LOCAL

  • IS_UPDATABLE

    MySQL 在时间设置一个标志,称为视图可更新性标志 。如果 和 (以及类似操作)对于视图合法,则将 CREATE VIEW标志设置为(true)。否则,将标志设置为(false)。 表中的列 显示此标志的状态。这意味着服务器始终知道视图是否可更新。 YESUPDATEDELETENO``IS_UPDATABLEVIEWS

    如果视图不可更新,则诸如 、 和 之类的语句 UPDATEDELETE非法 INSERT的,将被拒绝。(即使视图可更新,也可能无法插入;有关详细信息,请参阅 第 27.5.3 节“可更新和可插入视图”。)

  • DEFINER

    创建视图的用户的帐户( 格式为)。 '*user_name*'@'*host_name*'

  • SECURITY_TYPE

    视图SQL SECURITY特性。值为DEFINER或 之一INVOKER

  • CHARACTER_SET_CLIENT

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

  • COLLATION_CONNECTION

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

笔记

MySQL 允许使用不同的sql_mode 设置来告诉服务器要支持的 SQL 语法类型。例如,您可以使用ANSI SQL 模式来确保 MySQL 正确解释查询中的标准 SQL 连接运算符双杠 ( ||)。如果您随后创建连接项目的视图,您可能会担心将设置更改 sql_mode为不同于 的值ANSI可能会导致视图无效。但事实并非如此。无论您如何写出视图定义,MySQL 总是以相同的方式以规范形式存储它。以下示例显示了服务器如何将双杠连接运算符更改为函数 CONCAT()

mysql> SET sql_mode = 'ANSI'; Query OK, 0 rows affected (0.00 sec) mysql> CREATE VIEW test.v AS SELECT 'a' || 'b' as col1; Query OK, 0 rows affected (0.00 sec) mysql> SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v'; +----------------------------------+ | VIEW_DEFINITION | +----------------------------------+ | select concat('a','b') AS `col1` | +----------------------------------+ 1 row in set (0.00 sec)

以规范形式存储视图定义的优点是,稍后对 的值所做的更改 sql_mode不会影响视图的结果。但是,另一个后果是SELECT服务器会从定义中删除 之前的注释。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论