失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用?

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

时间:2022-11-12 23:53:21

相关推荐

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_-04-09.sqlEnter 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_numberMySQL-specific code*/

备注:此时版本号的作用是,只有当Mysql的版本大于等于这个版本号的时候,注释中的SQL语句才会被执行

小结:

/*!MySQL-specific code*/ 这种注释是mysql注释中的特殊一种,通过使用叹号在注释中,注释中的代码就会被执行.

在本例子中,只有当Mysql Server的版本大于Mysql 4的时候,这个语句才能被执行.

如果觉得《mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。