需要查询以获取已使用和未使用表的列表[关闭]

Posted

技术标签:

【中文标题】需要查询以获取已使用和未使用表的列表[关闭]【英文标题】:Need a query to get a list of used and unused tables [closed] 【发布时间】:2011-11-14 15:54:14 【问题描述】:

我在一个文本文件中将我们架构中的表列表提供给我的老板,问他我们需要备份所有这些表。现在他要我写一个查询来返回需要备份的其余表。

他提示我必须在查询中使用 USER_TABS 和 DIFF。

有人可以帮忙吗?

我正在使用 ORACLE 数据库。

【问题讨论】:

【参考方案1】:

什么标准定义了一个“未使用”的表,什么标准定义了一个“需要备份”的表? “备份”是什么意思?

如果您谈论的是备份,您通常会谈论物理备份,在这种情况下您会备份整个数据库(完全备份或增量备份,具体取决于您如何构建备份策略)。您不会也不能在物理备份中包含或排除表。您可以将表移动到只读表空间,让 Oracle 知道它们不需要再次备份。但这听起来不像是你所追求的。

【讨论】:

嗨贾斯汀,我们的客户想知道我们正在改变的桌子,这样他们就不必每周不必要地收回所有桌子。相反,他们只是想知道我们对其进行了更改的表,以便他们可以仅备份这些表并保持良好状态。我发给老板的表格列表是在记事本中手动制作的 @Bhushan - 再说一遍,“备份”是什么意思?如果您的意思是正常的物理备份,他们应该进行增量 RMAN 备份,并且不需要您的任何输入。 “改变”是什么意思?你真的是指ALTER TABLE 即 DDL 吗?还是您的意思是具有 DML 更改的表? Oracle 不会跟踪任意时间段内的 DML 更改——如果您真的想跟踪对任何表的每个 DML 更改,您可能会在每个表上创建触发器,写入单独的日志表,然后查询日志表。但这似乎不太实用。 好的,让我重新表述我的问题。忘记我之前说的一切。现在假设我有 10 个表 A、B、C、D、E、F、G、H、I、J。你能告诉我一个使用 USER_TABS 和 DIFF 来返回表 K 到 Z 的 sql 吗? @Bhushan - 假设 K-Z 存在并且是唯一存在的其他表 SELECT table_name FROM user_tables WHERE table_name NOT IN ('A','B','C','D',...,'J')

以上是关于需要查询以获取已使用和未使用表的列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django Admin 中使用显示已选择和未选择的表单

选择创建每月增量条目表的查询

如何遍历复选框列表并找到已选中和未选中的内容?

MySQL获取以特定名称结尾的表列表及其(表的)注释

python 检测某网段已用ip和未使用的ip

Realm JS:正确查询以使用 AND 条件从列表中获取对象