mysql删除语句的本质_mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)...

需求描述:

今天在看mysqldump工具的使用过程,发现一个同事,是这样写的mysqldump命令

mysqldump -uroot -pmysql employees titles | mysql -uroot -pmysql -D top_server

思考:为啥要这么操作呢?所以,就做了个试验.

操作过程:

1.首先对mysqldump单独执行

[mysql@redhat6 mysql_backup]$ mysqldump -uroot -pmysql employees titles | more

-- MySQL dump 10.13 Distrib 5.5.57, for linux-glibc2.12(x86_64)--

--Host: localhost Database: employees-- ------------------------------------------------------

-- 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*/;--

-- Table structure fortable `titles`--DROP TABLE IF EXISTS `titles`;/*!40101 SET @saved_cs_client = @@character_set_client*/;/*!40101 SET character_set_client = utf8*/;

CREATE TABLE `titles` (

`emp_no`int(11) NOT NULL,

`title` varchar(50) NOT NULL,

`from_date`dateNOT NULL,

`to_date`dateDEFAULT NULL,

PRIMARY KEY (`emp_no`,`title`,`from_date`),

CONSTRAINT `titles_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client*/;--

-- Dumping data for table `titles`

备注:mysqldump就是进行逻辑备份,并且产生一系列的SQL语句.

优化1:在mysqldump某个表的时候,是会产生,DROP表语句的.  --2018年6月1日11:07:23

2.继续通过mysql客户端工具执行

mysqldump -uroot -pmysql employees titles | mysql -uroot -pmysql -D top_server

备注:发现已经将employess库下的titles表恢复到了top_server数据库下.

优化1:恢复的过程,就是执行mysqldump出来的表的SQL语句,首先执行删除表的操作,然后创建表,导入数据.--2018年6月1日11:08:34

3.所以对同事的那条命令的理解

解释:就是将某个库下的表恢复到其他的数据库下,由于这个命令是每天都执行的,所以,可以理解是表的同步.

小结:

经过以上的测试理解了,无论怎样mysqldump就是产生一系列SQL语句,可以通过>转储到sql文件或者压缩文件都是可以.

mysql客户端可以执行mysqldump产生的SQL文件.就是一个客户端工具而已.可以结合-h选项把数据表恢复到远程库下.

文档创建时间:2018年4月11日17:31:56

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值