首页 > 解决方案 > 使用 mysqldump 时跳过或忽略临时表

问题描述

想知道是否有一种方法可以使用 mysqldump 跳过/忽略所有临时表。在我们的例子中,这些表的前缀是 tmp{guid}。

这些临时表的生命周期很短,它们用于在其父应用程序中构建某种报告。生命周期可能长达 1 分钟。

编辑:有人建议我使用 ignore-tables 参数,不幸的是,这并没有为我提供一种将通配符指定为表名 (tmp*) 的方法。

标签: mysqlsql

解决方案


您不是在谈论来自 的表格CREATE TEMPORARY TABLE ...,对吗?相反,您是在谈论一组具有特定命名约定的表?

与其尝试使用表名,不如使用DATABASE

CREATE TABLE TempTables;
CREATE TABLE TempTables.abcd (...);

并通过数据库名称引用它们:

INSERT INTO TempTables.abcd ...
SELECT ... FROM TempTables.abcd JOIN ...

然后在 DATABASE` 上使用合适的参数mysqldump to avoid that one(或选择所有其他数据库进行转储)。


推荐阅读