我在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会忽略它们吗?如果是这样,为什么要生成这些行呢?
答案 0 :(得分:31)
这些是针对某些版本的mySQL的条件评论。
/*!
*/
答案 1 :(得分:6)
MySQL 将解析并执行这些代码行,我相信本地化和字符编码的东西,因为评论以/*!
(带感叹号)而不仅仅是C风格的/*
。
可以像使用条件注释和Internet Explorer一样考虑它。 <!--[if IE]><![endif]-->
看起来像是对其他浏览器的任何普通旧HTML评论,但IE会识别此特殊注释并根据需要对其进行分析。同样,/*! */
看起来像对其他SQL DBMS的任何其他注释,但对MySQL来说是特殊的。