Spec-Zone.ru › MariaDB

Синтаксис комментариев

В MariaDB поддерживаются три вида комментариев:

  1. От '#' до конца строки:
    SELECT * FROM users; # This is a comment
    
  2. От '-- ' до конца строки. Пробел после двух тире обязателен (как в MySQL).
    SELECT * FROM users; -- This is a comment
    
  3. Комментарии C-стиля от открывающей '/*' до закрывающей '*/'. Комментарии такого вида могут занимать несколько строк:
    SELECT * FROM users; /* This is a
    multi-line
    comment */
    

Вложенные комментарии возможны в некоторых ситуациях, но они не поддерживаются и не рекомендуются.

Исполнимые комментарии

Для обеспечения портативности между разными базами данных, MariaDB поддерживает исполнимые комментарии. Эти специальные комментарии позволяют встраивать SQL-код, который не будет выполняться при запуске на других базах данных, но будет выполняться при запуске на MariaDB.

MariaDB поддерживает как формат исполнимых комментариев MySQL, так и немного изменённую версию, специфичную для MariaDB. Таким образом, если у вас есть SQL-код, работающий в MySQL и MariaDB, но не в других базах данных, вы можете обернуть его в исполнимый комментарий MySQL, а если у вас есть код, специально использующий функции, доступные только в MariaDB, вы можете использовать специфичный для MariaDB формат, чтобы скрыть код от MySQL.

Синтаксис исполнимых комментариев

Синтаксис исполнимых комментариев MySQL и MariaDB:

/*! MySQL or MariaDB-specific code */

Код, который должен выполняться только начиная с определённой версии MySQL или MariaDB:

/*!##### MySQL or MariaDB-specific code */

Числа, представленные '######' в примерах синтаксиса выше, указывают минимальные версии MySQL и MariaDB, которые должны выполнить комментарий. Первое число — это большая версия, следующие 2 числа — это меньшая версия, и последние 2 — это уровень исправления.

Например, если вы хотите встроить код, который должен выполняться только в MySQL или MariaDB начиная с версии 5.1.0, вы сделаете следующее:

/*!50100 MySQL and MariaDB 5.1.0 (and above) code goes here. */

Синтаксис исполнимых комментариев только для MariaDB (начиная с MariaDB 5.3.1):

/*M! MariaDB-specific code */
/*M!###### MariaDB-specific code */

MariaDB игнорирует исполнимые комментарии в стиле MySQL, у которых номер версии находится в диапазоне 50700..99999. Это необходимо для пропуска функций, введённых в MySQL-5.7, которые ещё не перенесены в MariaDB 10.x.

/*!50701 MariaDB-10.x ignores MySQL-5.7 specific code */

Примечание: комментарии, у которых номер версии находится в диапазоне 50700..99999 и которые используют синтаксис исполнимых комментариев для MariaDB, всё равно выполняются.

/*M!50701 MariaDB-10.x does not ignore this */

Разделители операторов не могут использоваться внутри исполнимых комментариев.

Примеры

В MySQL все следующие запросы вернут 2: в MariaDB последние 2 запроса вернут 3.

SELECT 2 /* +1 */;
SELECT 1 /*! +1 */;
SELECT 1 /*!50101 +1 */;
SELECT 2 /*M! +1 */;
SELECT 2 /*M!50301 +1 */;

Следующее исполнимое утверждение не будет работать из-за разделителя внутри исполняемой части:

/*M!100100 select 1 ; */
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

Вместо этого, разделитель должен быть помещён вне исполняемой части:

/*M!100100 select 1 */;
+---+
| 1 |
+---+
| 1 |
+---+
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/comment-syntax/

Spec-Zone.ru

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