在我工作的公司,数据库庞大。我们有很多表,有时当我使用SQL搜索某些东西时,特定的采购订单处于什么状态。我经常发现存储状态的列只包含一个数字(因此该列是外键)。
问:我想知道如何找到这个外键所指的表。没有使用图表作为其庞大,我无法告诉关系。e.g。
Table: Purchase Orders
Column: PO_Status
PO_Status only contains number 1-10.
状态的名称和描述存储在另一个表中,数字1-10表示该另一个表中的该记录。我想知道那个表名是什么。
这将有助于节省大量时间。请帮助!
答案 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
。