# 26.3.48 信息_SCHEMA 视图表
这意见
表提供有关数据库中视图的信息。你必须拥有显示视图
访问此表的权限。
这意见
表有这些列:
表目录
视图所属的目录的名称。这个值总是
定义
.TABLE_SCHEMA
视图所属的架构(数据库)的名称。
TABLE_NAME
视图的名称。
VIEW_DEFINITION
这
选择
提供视图定义的语句。本专栏包含您在创建表
列显示创建视图
产生。跳过前面的单词选择
并跳过单词带检查选项
.假设原始语句是: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
属性。该值是其中之一没有
,级联
, 要么当地的
.IS_UPDATABLE
MySQL 设置一个标志,称为视图可更新标志,在
创建视图
时间。标志设置为是的
(真)如果更新
和删除
(和类似的操作)对于视图是合法的。否则,标志设置为不
(错误的)。这IS_UPDATABLE
列中的意见
表显示了此标志的状态。这意味着服务器总是知道视图是否可更新。如果视图不可更新,则
使现代化
,删去
和插入
是非法的,被拒绝。(即使视图是可更新的,也可能无法插入其中;有关详细信息,请参阅。)第25.5.3节,“可更新和可插入视图”.)定义者
在中创建视图的用户的帐户
'*
用户名*'@'*
主机名*'
总体安排安全类型
风景
SQL安全性
特征它的价值是定义者
或调用者
.字符集客户端
会话的会话值
字符集客户端
创建视图时的系统变量。校对连接
会话的会话值
校对连接
创建视图时的系统变量。
# 笔记
MySQL允许不同的sql_模式
用于告诉服务器要支持的SQL语法类型的设置。例如,您可以使用ANSI
SQL模式,以确保MySQL正确解释标准SQL连接运算符双栏(||
),在您的查询中。如果随后创建一个连接项的视图,可能会担心更改sql_模式
设置为不同于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_模式
不要影响视图中的结果。然而,另一个后果是,在选择
由服务器从定义中删除。