mysqldump一个有条件的数据库

时间:2018-10-02 11:41:42

标签: mysql

我的MySQL数据库的表包含company_id列,而其他表则没有,我想将所有数据转储到SQL文件中。

但是我只需要为具有此列的表添加一个where company_id=1,其余的我就需要获取所有数据。

这对我不起作用,因为我必须指定表名,而我需要的是在具有该列的每个表上转储带有条件的所有内容:

mysqldump -u root -p root databaseName tableName --where company_id=1 > mydb_tables.sql

1 个答案:

答案 0 :(得分:1)

您是否尝试过结合使用mysqldump的--tables选项? https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#mysqldump-filter-options

每当您有更多/更少具有该列名称的表时,就必须修改mysqldump命令。

编辑: 您也可以尝试在数据库名称之后指定表名称,然后才真正不需要--tables。

  

通常,mysqldump在命令行上处理名字参数   作为数据库名称,后跟名称作为表名称。

编辑2: 我刚刚测试了转储多个表及其“ id = 1”所在行的情况,因此,如果仅使用company_id列指定所有表,则该表必须工作。 您将需要一个命令来转储具有该列的所有表,而对于所有其他表则需要一个命令(在这里可以使用--ignore-table)。