日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用?

發布時間:2024/8/26 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求描述:

  今天在進行mysqldump實驗,使用--add-drop-databases參數,于是在生成的SQL文件中,就出現了.

  /*!40000 DROP DATABASE IF EXISTS `top_server`*/;這種類似于注釋的內容,查詢了一下

  在這里記錄下.

操作過程:

1.使用--add-drop-database參數進行數據庫的備份

[mysql@redhat6 MysqlDb_Backup]$ mysqldump -uroot -p --single-transaction --master-data --flush-logs --add-drop-database --databases top_server test01 > Backup_Tables_2018-04-09.sql Enter password:

備注:使用--add-drop-database選項之后,就會在生成的SQL文件中增加drop database選項,即還原時先對DB進行刪除.

2.查看生成的SQL備份文件

-- MySQL dump 10.13 Distrib 5.5.57, for linux-glibc2.12 (x86_64) -- -- Host: localhost Database: top_server -- ------------------------------------------------------ -- Server version 5.5.57-log/*!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 */;-- -- Position to start replication or point-in-time recovery from --CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000018', MASTER_LOG_POS=107;-- -- Current Database: `top_server` --/*!40000 DROP DATABASE IF EXISTS `top_server`*/; #在SQL文件中增加了該語句,使用該文件還原時會先刪除數據庫.CREATE DATABASE /*!32312 IF NOT EXISTS*/ `top_server` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `top_server`;-- -- Table structure for table `dept` --

3.將/*!40000 DROP DATABASE IF EXISTS `top_server`*/;語句直接放到mysql控制臺中執行

mysql> /*!40000 DROP DATABASE IF EXISTS `top_server`*/; Query OK, 62 rows affected (0.28 sec)mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test01 | | test02 | | test03 | | ziler | +--------------------+ 7 rows in set (0.00 sec)

備注:發現top_server數據庫已經被刪除了,說明這個SQL語句不是注釋是可以執行的語句.

4.經過查詢,發現該類似于注釋的語句的特點

注釋格式:

/*!?MySQL-specific code?*/

備注:在注釋部分中的SQL語句就會被執行,注釋的開頭多了個嘆號.

另外,也可以在!號的后面加版本號

/*!version_number?MySQL-specific code?*/

備注:此時版本號的作用是,只有當Mysql的版本大于等于這個版本號的時候,注釋中的SQL語句才會被執行

?

小結:

  /*!?MySQL-specific code?*/ 這種注釋是mysql注釋中的特殊一種,通過使用嘆號在注釋中,注釋中的代碼就會被執行.

  在本例子中,只有當Mysql Server的版本大于Mysql 4的時候,這個語句才能被執行.

總結

以上是生活随笔為你收集整理的mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。