如何从Oracle DB中查看FK?(Oracle 18c)

0kjbasz6  于 2023-10-16  发布在  Oracle
关注(0)|答案(3)|浏览(150)

我创建了一个SQL下面显示了一个错误。
ORA-02291:完整性约束(MYDBS.FK31_1)
我想看看这个FK 31是否可以运行SQL获取?
请告诉我怎么做。
我给你我的爱给予看到这个问题:)

4urapxun

4urapxun1#

如果您有访问权限,请从DBA_CONSTRAINTSDBA_CONS_COLUMNS中选择。否则尝试ALL_CONSTRAINTSALL_CONS_COLUMNS。连接列表两次,以获得父表的主键或唯一键列与子表的外键列的组合:

select
  fkc.table_name as child_table,
  fkc.column_name as child_table_col,
  pkc.table_name as parent_table,
  pkc.column_name as parent_table_col
from dba_constraints fk
join dba_cons_columns fkc on fkc.owner = fk.owner
                         and fkc.constraint_name = fk.constraint_name
join dba_cons_columns pkc on pkc.owner = fk.r_owner
                         and pkc.constraint_name = fk.r_constraint_name
                         and pkc.position = fkc.position
where fk.owner = 'MYDBS'
and fk.constraint_name = 'FK31_1'
order by fkc.position;
jmo0nnb3

jmo0nnb32#

Oracle提供了大量的元数据视图,从ALL_USER_DBA_开始。在我们的例子中,我们需要ALL_CONSTRAINTS,您可以查询为

select *
  from ALL_CONSTRAINTS
 where CONSTRAINT_NAME = 'FK31_1'

**编辑:**正如 Jeff Holt 在下面的评论中提到的,你也可以尝试ALL_CONS_COLUMNS

select *
  from ALL_CONS_COLUMNS 
 where CONSTRAINT_NAME = 'FK31_1'
rslzwgfq

rslzwgfq3#

下面是关于包含FK信息的DBA视图的图表(显示了各种约束(PK,UK,FK,NOT-NULL))

相关问题