Что означает /*! Xxxxxx statement */, генерируемый mysqldump?

Мне всегда было любопытно, что эти комментарии заключают в себе предпроцессорные заявления, которые mysqldump генерирует для меня. Вот пример:

/*!40000 ALTER TABLE abc DISABLE KEYS */;

Общий шаблон выглядит как

/*![some numeric code] [some statement] */;

Пожалуйста, укажите правильную документацию, если она существует. Иначе объясните.:)

Ответы

Ответ 1

http://dev.mysql.com/doc/refman/5.1/en/comments.html

Комментарии формы /*! stuff */ рассматриваются как комментарии других РСУБД, но MySQL будет читать то, что внутри комментария, и выполнять его как SQL. Вы можете использовать это, чтобы воспользоваться функциями, специфичными для MySQL, даже используя код, который может быть запущен в отношении других СУБД. Например, вы можете использовать /*! ENGINE=INNODB */ в запросе CREATE TABLE.

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