首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqldump:如何获取依赖行

问mysqldump:如何获取依赖行
EN

Stack Overflow用户
提问于 2017-08-31 02:05:28
回答 1查看 516关注 0票数 3

我想要在我的开发机器上使用的实时MySQL DB的快照。问题是DB太大了,所以我的想法是执行:

代码语言:javascript
复制
mysqldump [connection-info-here] --no-autocommit --where="1 limit 1000" mydb > /dump.sql  

我认为这将为我提供数据库mydb中每个表的前1000行。我预计结果数据集将打破许多外键约束,因为一些记录将会丢失。因此,我打算在dev机器上运行的应用程序将失败。

有没有一种方法可以在确保转储的所有记录都遵守键约束的同时对数据库样本执行mysqldump操作?(例如,如果一个外键被转储,那么外表中匹配的记录也将被转储)。

如果这是不可能的,你们怎么处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-08-31 02:13:46

不,mysqldump没有选项只转储外键关系中匹配的行。您已经知道了--where选项,但这并不能解决这个问题。

我和您有相同的任务,转储数据的子集,但只转储相关的数据。例如,用于创建测试实例。

我已经使用MySQL很多年了,我一直是一名MySQL顾问和培训师,我试图跟上当前的工具。我从来没有听说过有任何MySQL工具可以执行此操作。

我建议的唯一解决方案是编写自己的脚本,使用SELECT...INTO OUTFILE逐表转储。

有时,只为您的特定模式编写一个自定义脚本要比某人编写一个适用于每个人的模式的通用工具容易得多。

我过去处理这个问题的方式是不从实时数据库中复制数据。我找到了一些其他方法来创建用于测试的假数据子集。创建合成数据可能更好,因为这样就不会冒着在开发/测试环境中意外使用实时数据的风险,以防其中一些数据是私有数据。

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

https://stackoverflow.com/questions/45967034

复制
相关文章

相似问题

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