SHOW CREATE VIEW语句
SHOW CREATE VIEW view_name
该语句显示CREATE VIEW
创建命名视图的语句。
mysql>SHOW CREATE VIEW v\G *************************** 1. row *************************** View : v Create View : CREATE ALGORITHM=UNDEFINED DEFINER=`bob`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select 1 AS `a`,2 AS `b` character_set_client : utf8mb4 collation_connection : utf8mb4_0900_ai_ci
character_set_client
是character_set_client
创建视图时系统变量的会话值。collation_connection
是collation_connection
创建视图时系统变量的会话值。
使用时SHOW CREATE VIEW
需要SHOW VIEW
特权,并且需要相关SELECT
视图的特权。
INFORMATION_SCHEMA
VIEWS
表格中也提供了参见信息。请参见“ INFORMATION_SCHEMA VIEWS表”。
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.vAS SELECT 'a' || 'b'as col1; Query OK, 0 rows affected (0.01 sec) mysql>SHOW CREATE VIEW test.v\G *************************** 1. row *************************** View : v Create View : CREATE VIEW "v" AS select concat('a','b') AS "col1" ... 1 row in set (0.00 sec)
以规范形式存储视图定义的优点是,以后对的值进行的更改sql_mode
不会影响视图的结果。但是,另一个后果是,SELECT
服务器将定义之前的注释删除。