MysqlDump开头的语句是做什么的?

时间:2013-03-19 00:29:18

标签: mysql

查看mysqldump的输出,我在顶部看到以下内容。

同样分散在我看到/ *中的各种语句! * /块。我的猜测是这些可能是基于版本的条件执行,但不幸的是,谷歌剥离符号很难确认这一点。

/*!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 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

这是MySQL手册中对这些陈述的另一个引用(也没有解释它们的作用)。

https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_disable-keys

1 个答案:

答案 0 :(得分:0)

在创建表格之前你会注意到,你会有这样的一行:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

然后在所有这些事情之后你会有这样一条线:

/*!40101 SET @CHARACTER_SET_CLIENT=@@OLD_CHARACTER_SET_CLIENT */;

这些行的作用是保存数据库的当前设置,将它们更改为导入文件所需的内容,运行查询,然后将数据库的设置恢复为原样。