Spec-Zone.ru › MySQL 5.7

9.6 Комментарии

Сервер MySQL поддерживает три стиля комментариев:

  • От символа # до конца строки.

  • От последовательности --  до конца строки. В MySQL стиле комментариев --  (двойной дефис) второй дефис должен быть за которым следует по крайней мере один пробел или управляющий символ, такой как пробел или табуляция. Этот синтаксис немного отличается от стандартного синтаксиса SQL-комментариев, как описано в разделе 1.6.2.4, «'--' как начало комментария».

  • От последовательности /* до следующей последовательности */, как в языке программирования C. Этот синтаксис позволяет комментарию занимать несколько строк, поскольку начальная и конечная последовательности не обязательно должны быть в одной строке.

Следующий пример демонстрирует все три стиля комментариев:

mysql> SELECT 1+1;     # This comment continues to the end of line
mysql> SELECT 1+1;     -- This comment continues to the end of line
mysql> SELECT 1 /* this is an in-line comment */ + 1;
mysql> SELECT 1+
/*
this is a
multiple-line comment
*/
1;

Вложенные комментарии не поддерживаются. (В некоторых условиях вложенные комментарии могут быть разрешены, но обычно этого не происходит, и пользователи должны избегать их.)

Сервер MySQL поддерживает некоторые варианты комментариев в стиле C. Это позволяет вам писать код, включающий расширения MySQL, но при этом оставаясь совместимым, используя комментарии следующего формата:

/*! MySQL-specific code */

В этом случае сервер MySQL парсит и выполняет код внутри комментария, как любой другой SQL-запрос, но другие SQL-серверы игнорируют расширения. Например, сервер MySQL распознает ключевое слово STRAIGHT_JOIN в следующем операторе, но другие серверы этого не делают:

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

Если вы добавите номер версии после символа !, синтаксис внутри комментария выполняется только в том случае, если версия MySQL больше или равна указанному номеру версии. Ключевое слово KEY_BLOCK_SIZE в следующем комментарии выполняется только серверами MySQL 5.1.10 или более поздних версий:

CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

Номер версии использует формат Mmmrr, где M — основная версия, mm — двухзначная второстепенная версия, а rr — двухзначный номер выпуска. Например: В операторе, который должен выполняться только сервером MySQL версии 5.7.31 или более поздней, используйте 50731 в комментарии.

Синтаксис комментариев, только что описанный, применяется к тому, как сервер mysqld анализирует SQL-запросы. Программа-клиент mysql также выполняет некоторую обработку запросов перед их отправкой на сервер. (Это делается для определения границ операторов в строке ввода нескольких операторов.) Сведения о различиях между парсерами сервера и клиентом mysql см. в разделе 4.5.1.6, «mysql Client Tips».

Комментарии в формате /*!12345 ... */ не сохраняются на сервере. Если этот формат используется для комментирования хранимых программ, комментарии не сохраняются в теле программы.

Другой вариант синтаксиса комментариев в стиле C используется для указания подсказок оптимизатора. Комментарии подсказок включают символ + после последовательности открытия комментария /*. Пример:

SELECT /*+ BKA(t1) */ FROM ... ;

Дополнительную информацию см. в разделе 8.9.3, «Подсказки оптимизатора».

Использование команд с краткой формой mysql, таких как \C, в многострочных /* ... */ комментариях не поддерживается. Команды с краткой формой работают внутри однострочных /*! ... */ комментариев с версиями, а также /*+ ... */ комментарии подсказок оптимизатора, которые хранятся в определениях объектов. Если есть опасения, что комментарии подсказок оптимизатора могут храниться в определениях объектов, так что при повторном загрузке файлов дампов с помощью mysql приведет к выполнению таких команд, вызовите mysql с параметром --binary-mode или используйте клиент загрузки, отличный от mysql.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/comments.html

Spec-Zone.ru

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