【问题标题】:Unclear result of mysqldumpmysqldump 的结果不清楚
【发布时间】:2014-11-29 06:45:47
【问题描述】:

为什么这些行会出现在 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 */;

他们已被评论并以![some number] 开头。什么意思?

【问题讨论】:

标签: mysql sql mysqldump


【解决方案1】:

这个

/*!40014

只要确保以下命令仅在 MySQL 版本至少为 4.00.14 时执行。

这个

SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT

存储 MySQL 的当前设置。以@@ 开头的变量是系统变量,以@ 开头的变量是用户定义的变量。

数据导入完成后,MySQL会用相反的语句恢复原状态,如

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

【讨论】:

  • 值得注意的是 /*!是 mysql 中的一个特殊注释,它知道在某些条件通过的情况下实际执行它的一部分。与 Java 中的 javadocs 相同 /** 被解析并执行以显示 javadocs 其中 // cmets 未被解析。
猜你喜欢
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
相关资源
最近更新 更多