首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为mysql中的整个数据库从每个表中转储数据子集

如何为mysql中的整个数据库从每个表中转储数据子集
EN

Stack Overflow用户
提问于 2016-07-16 03:30:01
回答 1查看 871关注 0票数 1

假设有一个生产DB P和一个本地DB L。我希望有一个来自P的数据子集,并将它们还原到L中。

我知道,可以很容易地从sqldump中的表中提取数据的子集。但是,如果它是一个有50个表的DB呢?一个人能很容易的sqldump所有的表为第一个,例如,1000,记录吗?

另外,假设是star schema,是否可以使用连接到大多数其他表的主表,并为该表选择前1000条记录,并相应地检索1000条记录的外键数据子集?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-16 03:59:48

我不认为有什么简单的方法可以一次做到这一点。对数据进行子集的唯一方法是使用-w选项,但它将尝试对所有表使用相同的WHERE条件。你可以分两步完成:

代码语言:javascript
复制
mysqldump -w 'id < 1000' dbname mastertable > mastertable.sql
mysqldump -w 'master_id < 1000' dbname child1 child2 child3 ... > children.sql

这假设所有子表对其外键使用相同的名称。

可以将第二个命令简化为:

代码语言:javascript
复制
mysqldump --ignore-table=dbname.mastertable -w 'master_id < 1000' dbname > children.sql

如果数据库中的所有其他表都是子表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38407430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档