Spec-Zone.ru › MySQL 5.7

13.7.5.13 Вывод DDL-кода для представления

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: utf8
collation_connection: utf8_general_ci

character_set_client — это значение переменной сессии character_set_client во время создания представления. collation_connection — это значение переменной сессии collation_connection во время создания представления.

Использование SHOW CREATE VIEW требует SHOW VIEW разрешения и SELECT разрешения на само представление.

Информация о представлении также доступна в таблице INFORMATION_SCHEMA VIEWS. Смотрите Раздел 24.3.31, «Таблица 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/show-create-view.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API