mysqldump工具,通过–where选项,导出指定表中指定数据?
需求描述:
今天在使用mysqldump工具导出表的时候,考虑能不能导出满足条件的数据行,不要
将表都导出来,查找资料,通过–where选项,就可以实现目的,做个实验,在此记录下.
操作过程:
1.通过–where选项导出满足条件的数据
[mysql@redhat6 mysql_backup]$ mysqldump -uroot -p --single-transaction --master-data --where=‘id < 10’ test02 goods_code_info > TableConditon.sql
Enter password:
[mysql@redhat6 mysql_backup]$
备注:–where等号的后面的条件,必须要用括号扩起来.上面的语句的作用,导出test02库下goods_code_info表中满足id<10这个条件的记录.
2.查看生成的数据sql文件
复制代码
– Dumping data for table goods_code_info
– WHERE: id < 10
LOCK TABLES goods_code_info
WRITE;
/*!40000 ALTER TABLE goods_code_info
DISABLE KEYS /;
INSERT INTO goods_code_info
VALUES (1,’,3,4’,‘7008’,’,abc,64G’,‘ddd’,‘1000002’,NULL,NULL,NULL,‘0001’,‘1002’),(2,’,5,4’,‘7009’,G’,‘N5S’,‘1000000000000003’,NULL,NULL,NULL,‘0002’,‘1002’),(3,’,6,4’,‘7009’,’,蓝,6G’,‘NS’,‘100000004’,NULL,NULL,NULL,‘0003’,‘1002’),(4,NULL,‘7010’,NULL,‘A制’,‘17099558’,NULL,NULL,NULL,NULL,NULL),(5,NULL,‘7011’,NULL,‘5’,‘1709250099999993’,NULL,NULL,NULL,NULL,NULL),(6,NULL,‘7012’,NULL,‘3器P1’,‘1710408’,NULL,NULL,NULL,NULL,NULL),(7,NULL,‘7012’,NULL,‘3P1’,‘8100002226’,NULL,NULL,NULL,NULL,NULL),(8,NULL,‘7012’,NULL,‘由器P1’,‘8171228’,NULL,NULL,NULL,NULL,NULL),(9,NULL,‘7013’,NULL,‘0 中车’,‘8171228200002325’,NULL,NULL,NULL,NULL,NULL);
/!40000 ALTER TABLE goods_code_info
ENABLE KEYS /;
UNLOCK TABLES;
/!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
复制代码
备注:导出ID最大是9.在sql文件中,有where条件.
3.查看原表中的最大id值
复制代码
[mysql@redhat6 mysql_backup]$ mysql -uroot -p -D test02 -e “select max(id) from goods_code_info”
Enter password:
±--------+
| max(id) |
±--------+
| 5139 |
±--------+
[mysql@redhat6 mysql_backup]$
复制代码
备注:原来的表中的id值,最大是5139.我们只是导出id小于9的.导出成功.