我的MySQL数据库的表包含company_id
列,而其他表则没有,我想将所有数据转储到SQL文件中。
但是我只需要为具有此列的表添加一个where company_id=1
,其余的我就需要获取所有数据。
这对我不起作用,因为我必须指定表名,而我需要的是在具有该列的每个表上转储带有条件的所有内容:
mysqldump -u root -p root databaseName tableName --where company_id=1 > mydb_tables.sql
答案 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)。