Файл дампа MySQL и закомментированные строки - PullRequest
22 голосов
/ 15 июля 2010

У меня есть эти строки в верхней части файла MySQL .sql (сбрасывается с помощью phpMyAdmin):

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

Но все они, кажется, закомментированы. Так будет ли MySQL игнорировать их при загрузке файла обратно в базу данных? Если так, зачем вообще генерировать эти строки?

Ответы [ 2 ]

31 голосов
/ 15 июля 2010

Это условные комментарии, предназначенные для определенных версий mySQL.

С здесь и здесь :

  • Комментарии к конкретной версии MySQLначинаются с /*!
  • и заканчиваются */
  • Номера версий всегда состоят из 5 цифр
  • Номера версий представлены в формате основной номер выпуска, вспомогательный номер выпуска, редакцияномер с главной цифрой 1 цифра, а младшая и ревизия с двумя цифрами слева, дополненные нулями
  • Комментарии к конкретной версии будут нацелены на любую версию, равную или превышающую номер версии, указанный в списке
6 голосов
/ 15 июля 2010

MySQL будет анализировать и выполнять эти строки кода, я полагаю, для локализации и кодировки символов, потому что комментарии начинаются с /*! (с восклицательного знака) вместо просто стиля C/*.

Думайте об этом так же, как вы делаете условные комментарии и Internet Explorer.<!--[if IE]><![endif]--> выглядит как любой старый HTML-комментарий для других браузеров, но IE распознает этот специальный комментарий и анализирует его по мере необходимости.Аналогично, /*! */ выглядит как любой другой комментарий к другим СУБД SQL, но является особенным для MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...