我需要转储包含 50 个奇数表的数据库,我想排除其中大约 15 个有前缀的奇数exam_
我试过了mysqldump --ignore-table=dbname.exam_*
,甚至试过--ignore-table=dbname.exam_%
了,没有达到预期的效果。我不得不--ignore-table
多次使用。
编辑:我已经看到一些列出tables not like tablename_%
并将其传递给mysqldump
.
但是,我想知道 mysqldump 或 mysql 中是否有一个选项,无需编写脚本即可执行相同的操作。
编辑添加:最终使用脚本转储不包括表的数据库,使用ignore-table=
多次。
不,正如文档所说,
mysqldump
命令中没有这样的选项:您可以从 mysql 中获取您想要的表名,然后使用它们来构建您的 mysql 转储参数。
在下面的示例中,只需将“someprefix”替换为您的前缀(例如“exam_”)。
SHOW TABLES
可以更改查询以查找其他表集。或者您可以对INFORMATION_SCHEMA
表进行查询以使用更多条件。这是在这个答案的帮助下构建的,关于获取“在 bash 中排除的所有表”:https ://stackoverflow.com/a/9232076/631764
这个关于使用一些 bash 跳过表的答案:https ://stackoverflow.com/a/425172/631764
我认为使用
information_schema
是一个很好的途径。