2010-06-01 7 views
16

Siempre tuve curiosidad acerca de lo que estos comentarios incluían las declaraciones preprocesado-tipo que mysqldump genera para mí. He aquí un ejemplo:¿Qué significa/*! Xxxxxx statement */generated by mysqldump?

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

El patrón general parece ser

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

favor apuntan a la documentación apropiada si existe. De lo contrario, explica. :)

+2

http://kedar.nitty-witty.com/blog/sql-syntax-with-c-style-comments-in-mysqldump/ – nuqqsa

Respuesta

23

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

Comentarios de la forma /*! stuff */ son tratados como los comentarios de otros RDBMS, pero MySQL leerán lo que hay dentro del comentario y ejecutarlo como SQL. Puede usar esto para aprovechar las funciones específicas de MySQL incluso utilizando código que podría ejecutarse contra otros RDBMS. Por ejemplo, puede usar /*! ENGINE=INNODB */ en una consulta CREATE TABLE.

Los números son opcionales y si los usa, MySQL los ignorará si su número de versión es menor que el número (con puntos insertados en los lugares apropiados).