Форматтер MySQL
Форматируйте запросы и скрипты MySQL по правилам MySQL для идентификаторов в обратных кавычках, экранирования обратной косой чертой в строках, комментариев # и блоков DELIMITER. Каждая секция начинается с новой строки, столбцы и условия получают отступы, а секции MySQL, например ON DUPLICATE KEY UPDATE, остаются вместе. О незакрытых строках, комментариях и скобках сообщается с указанием строки и столбца, что помогает разработчикам читать и проверять код базы данных.
Часто задаваемые вопросы
Какой синтаксис MySQL понимает форматтер?
Он распознаёт идентификаторы в обратных кавычках, строки в одинарных и двойных кавычках с экранированием обратной косой чертой и удвоением кавычек, шестнадцатеричные, битовые и национальные литералы, например X'FF', B'101' и N'text', вводные обозначения кодировки, такие как _utf8mb4'text', а также переменные @user. Содержимое литералов остаётся без изменений.
Как обрабатываются комментарии?
Комментарии с решёткой (#) и комментарии с двумя дефисами (--) остаются на месте. Как и в MySQL, два дефиса начинают комментарий только в том случае, если за ними следует пробел или перевод строки, поэтому a--1 остаётся выражением. Исполняемые комментарии с указанием версии сохраняются без изменений.
Как форматируется запрос?
Основные секции, такие как SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY и LIMIT, начинаются с новой строки, а их содержимое получает отступ. Каждый выбранный столбец размещается на отдельной строке; AND и OR начинаются с новой строки, и каждый JOIN также выносится на отдельную строку.
Поддерживаются ли специфичные для MySQL секции?
Да. ON DUPLICATE KEY UPDATE, LOCK IN SHARE MODE, FOR UPDATE и FOR SHARE остаются одной секцией и не разбиваются на строки.
Можно ли форматировать хранимые процедуры и триггеры?
Да. Команды DELIMITER остаются на отдельных строках, пользовательский разделитель, например // или $$, завершает оператор, а блоки BEGIN и END с IF, WHILE и LOOP получают отступы.
Меняется ли регистр ключевых слов?
Нет. Ключевые слова, имена функций и идентификаторы сохраняют исходный регистр: select и SELECT останутся как есть. Меняются только пробелы и переводы строк.
Проверяет ли форматтер корректность моего запроса?
Он проверяет, что строки, идентификаторы в кавычках и блочные комментарии закрыты, а скобки сбалансированы, и сообщает о проблемах с указанием строки и столбца. Запрос не выполняется, имена таблиц и полная грамматика MySQL не проверяются.
Можно ли изменить отступ?
Да. Выберите отступ в 2 или 4 пробела либо табуляцию для каждого уровня. Короткие списки в скобках остаются на одной строке, а длинные списки и подзапросы оформляются как блок с отступом.
Каков максимальный размер входных данных?
До 1 MB SQL на запрос, до 128 KB в одном операторе. Скрипты с большим количеством операторов форматируются по одному оператору за раз и разделяются пустыми строками.
Сохраняется ли мой SQL?
Нет. Запросы форматируются в памяти и сразу возвращаются. Они никогда не сохраняются; в журнал записывается только размер запроса.