有没有一种方法在DBeaver中查找所有引用另一个表/列的表?

4

我有一个相对庞大的DBeaver数据库,想要查找所有引用特定表/列的表和可能的列。我在SO或其他任何地方都找不到与这个问题有关的内容。任何帮助将不胜感激,谢谢。


我在界面中没有找到这样的功能,但是这个答案提供了一个有用的 SQL。https://dba.stackexchange.com/a/137737 - A Petrov
3个回答

4

功能支持

从 DBeaver 7.0.0 开始,这已经作为表对象中的一个 主要功能 添加进去了(因为它存在于任何可扩展的表视图中)。

很遗憾,他们的发布说明(GitHub官方页面)并不是很详细。然而,我会提供一个非常有用的功能概述。

参考文献 - 功能概述

以下是它如何工作的简要概述:

  1. 数据库导航器 进入您想要的表
  2. 选择展开图标
  3. 选择 引用 选项

您的表的任何引用都将列在下面。请注意,每个表可能会有零个、一个或多个引用到您的表。

  1. 如果您只想获取表列表(可能包含上述重复信息),则可以选择所有引用,右键单击,然后从上下文菜单中选择 复制高级信息。这将复制以下形式的引用到您的剪贴板中:[模式]。[OwnerTable]。[ReferenceName],您可以从中分离出表名。
  2. 另外,双击 引用 可以获取更详细的视图。

参考文献 - 演示例子

作为演示,我将使用最受欢迎的样例数据库之一,Chinook 数据库。它始终在 GitHub 上免费提供。

假设您需要知道哪些表正在引用表 Track

从导航器

Dbeaver References Demonstration

或通过双击获得更详细的视图

Dbeaver References Detailed Demonstration


2

您可以通过UML视图在界面上实现此操作。

  1. 打开要查找相关表的表格
  2. 在顶部菜单中点击ER图(位于属性和数据旁边)

0
发现这个方法在 DBeaver 中:
SELECT * FROM ALL_TAB_COLUMNS;

我得到了这个答案: SQL错误[1]: [SQLITE_ERROR] SQL错误或缺少数据库(没有这个表:ALL_TAB_COLUMNS) - manuelvigarcia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接