查找外键的主表

时间:2017-12-15 14:20:07

标签: sql database oracle foreign-keys

在我工作的公司,数据库庞大。我们有很多表,有时当我使用SQL搜索某些东西时,特定的采购订单处于什么状态。我经常发现存储状态的列只包含一个数字(因此该列是外键)。

问:我想知道如何找到这个外键所指的表。没有使用图表作为其庞大,我无法告诉关系。

e.g。

Table: Purchase Orders
Column: PO_Status
PO_Status only contains number 1-10.

状态的名称和描述存储在另一个表中,数字1-10表示该另一个表中的该记录。我想知道那个表名是什么。

这将有助于节省大量时间。请帮助!

1 个答案:

答案 0 :(得分:-1)

您可以查询Oracle的“元数据”:

SELECT c.table_name, c.constraint_name, c2.table_name "REFERENCED_TABLE"
  FROM all_constraints c
 INNER JOIN all_constraints c2
    ON c.r_constraint_name = c2.constraint_name
 WHERE c.table_name = 'YOUR_TABLE_NAME';

另外,请注意,可以使用CHECK强制执行某些值限制,而不是暗示存在FK