3
查看一個mysqldump的輸出,我在頂部看到以下內容。在MysqlDump開始時的語句是什麼?
同樣散佈在我看到/ *中的各種語句! * /塊。我的猜測是,這些可能是有條件地執行基於版本,但不幸的是,谷歌剝離符號很難證實這一點。
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
下面是對MySQL手冊中這些語句的另一個引用(這也不能解釋它們的作用)。
https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_disable-keys
部分代碼會禁用索引和外鍵檢查,以便數據庫對數據插入的順序不敏感。 – 2013-03-19 01:24:40
在我看來,它存儲了DB('@ OLD_'部分)的一些配置信息,並將它們設置爲新值(沒有'@'的那些)。例如,請參閱「SET @ OLD_TIME_ZONE」,後面跟着「SET TIME_ZONE」。 '@ OLD_SQL_MODE'既存儲舊數據,又將新數據設置爲一行。 – 2013-03-19 01:28:02