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.