15.7.7.14 Заявление 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. Смотрите Раздел 28.3.47, «Таблица INFORMATION_SCHEMA VIEWS».
MySQL позволяет использовать различные параметры sql_mode для указания типу синтаксиса SQL, который должен поддерживаться сервером. Например, можно использовать режим SQL ANSI, чтобы убедиться, что 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.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 удаляются сервером из определения.
© 2025 Oracle
Licensed under the GPLv2 License.