mysql中/*!40000 DROP DATABASE IF EXISTS `top_server`*/;这中注释有什么作用?
2023-09-11 14:14:16 时间
需求描述:
今天在进行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的时候,这个语句才能被执行.
文档创建时间:2018年4月9日17:50:38
相关文章
- mysql索引总结(4)-MySQL索引失效的几种情况
- MySQL存储过程详解 mysql 存储过程
- 【MySQL】Mysql 日志
- 【MySQL高级】Mysql复制及Mysql权限管理
- mysql远程连接 Host * is not allowed to connect to this MySQL server
- MySQL使用初步—mysql数据库的基本命令
- MySQL函数(经典收藏)
- Mysql错误check the manual that corresponds to your MySQL server version for the right syntax
- MySQL第四讲 MySql Undo日志 - 对聚簇索引进行CUD操作
- 【MySQL进阶-10】mysql语句的执行流程以及集群的高可用
- 【MySQL进阶-02】mysql的explain执行计划以及索引优化
- MySQL root修改普通用户密码及Mysql 修改root密码
- mysql数据库提示本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法
- 项目访问mysql时报: Failed to obtain JDBC Connection...:Host ‘X‘is not allowed to connect to this MySQL ser
- MySQL基础之 支持的数据类型
- 向mysql中批量插入数据的性能分析
- mysql远程连接 Host is not allowed to connect to this MySQL server
- mysql导出数据报错The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
- mysql自定义函数
- Mysql_mysql force Index 强制索引
- 在centos中php 在连接mysql的时候,出现Can't connect to MySQL server on 'XXX' (13)
- (5.5)mysql高可用系列——MySQL半同步复制(实践)
- MYSQL 更改数据库data存储目录 创建用户 创建权限 设置远程访问的权限.
- Importing/Indexing database (MySQL or SQL Server) in Solr using Data Import Handler--转载
- Beyond MySQL --Branching the popular database--转载
- Linux平台卸载MySQL总结
- Linux安装Mysql server镜像安装失败 警告:mysql-community-devel-8.0.31-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature