PCM*_*PCM 11 mysql sql special-characters
我刚刚意识到sql files(.sql)中有一些行开头/*!并且不是注释,它们被执行以执行一些系统级任务.
我想知道MySQL开头的行是什么/*!意思,以及为什么在符号旁边使用该数字(在我的例子中为4000).
这是一个例子:
/*!40000 ALTER TABLE `my_table` DISABLE KEYS */;
INSERT INTO my_table VALUES ('value1','value2');
/*!40000 ALTER TABLE `my_table` ENABLE KEYS */;
Run Code Online (Sandbox Code Playgroud)
编辑: 根据链接的问题,我不认为这个问题是重复的.这个问题是关于MySQL如何对待它的.它没有询问如何删除这些评论,这个问题并未将其视为对MySQL的评论.
Tim*_*imo 14
这些行被任何其他RDBMS视为MySQL的注释.但是,MySQL会执行它们.
这样可以在SQL文件中启用MySQL特定的关键字或语法,而不会破坏其他系统.
该数字代表您要定位的版本,例如,/*!32302 TEMPORARY */仅由MySQL版本3.23.02或更高版本执行.
有关更多信息,请查看文档:
MySQL Server支持一些C风格注释的变种.通过使用以下格式的注释,这些使您能够编写包含MySQL扩展的代码,但仍然是可移植的:
Run Code Online (Sandbox Code Playgroud)/*! MySQL-specific code */在这种情况下,MySQL Server会像在任何其他SQL语句中那样解析和执行注释中的代码,但其他SQL服务器将忽略这些扩展.例如,MySQL Server在以下语句中识别STRAIGHT_JOIN关键字,但其他服务器不会:
Run Code Online (Sandbox Code Playgroud)SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...