【问题标题】:Using MySQLdump for sub-set of database migration使用 MySQLdump 进行数据库迁移的子集
【发布时间】:2009-07-22 19:52:58
【问题描述】:

我一直在使用 mysql 和 mysqldump 来教自己如何从一个数据库中获取数据,但我认为自己是一个温和的 MySQL 新手,只是为了记录。

我想做的是将一个数据库的子集放入另一台服务器上的全新数据库中,因此我需要创建 db/table 创建 sql 以及填充数据记录。

假设我的原始数据库有 10 个表,每个表有 100 行。我的新数据库将有 4 个这样的表(所有原始列),但每个数据集都有 40 行的进一步细化。这 40 行是用一些不太短的 SELECT 语句隔离的,每个表一个。

我想生成 .sql 文件,我可以从 mysql 调用它来加载/插入我导出的数据。如何生成这些 sql 文件?我听说您可以从 mysqldump 中调用 select 语句,但没有看到与我一样长的 select 语句的相关示例。

现在我可以生成 sql 输出,它只是带有列名的结果集,但没有插入代码等。

非常感谢您的帮助。

【问题讨论】:

  • 抱歉,我不确定我是否应该在此处或下方添加其他数据,所以有点重复我自己:从那条路线开始,但是我的 SELECT 很长,当我尝试运行它时会抛出错误命令提示符。那么...我可以让 mysqldump 从存储的文件中读取 SELECT 吗?

标签: select mysql import mysqldump


【解决方案1】:

您可能必须使用 mysqldump 一次转储一个表并使用 where 子句

-w, --where='where-condition'

Dump only selected records. Note that quotes are mandatory:
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"

例如:

mysqldump database1 table1 --where='rowid<10'

请参阅文档:http://linux.die.net/man/1/mysqldump

【讨论】:

  • 从那条路线开始,但我的 SELECT 很长,当我尝试从命令提示符运行它时会抛出错误。那么...我可以让 mysqldump 从存储的文件中读取 SELECT 吗?
【解决方案2】:

mysqldump 每个表都像上面丹尼斯所说的那样使用 where 子句。一次一张表,并将脚本与 cat 合并

cat customer.db order.db list.db price.db > my_new_db.db

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 2019-12-02
    • 2020-04-21
    • 1970-01-01
    • 2018-11-26
    • 2016-05-06
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多