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

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

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

4urapxun

4urapxun1#

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

  1. select
  2. fkc.table_name as child_table,
  3. fkc.column_name as child_table_col,
  4. pkc.table_name as parent_table,
  5. pkc.column_name as parent_table_col
  6. from dba_constraints fk
  7. join dba_cons_columns fkc on fkc.owner = fk.owner
  8. and fkc.constraint_name = fk.constraint_name
  9. join dba_cons_columns pkc on pkc.owner = fk.r_owner
  10. and pkc.constraint_name = fk.r_constraint_name
  11. and pkc.position = fkc.position
  12. where fk.owner = 'MYDBS'
  13. and fk.constraint_name = 'FK31_1'
  14. order by fkc.position;
jmo0nnb3

jmo0nnb32#

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

  1. select *
  2. from ALL_CONSTRAINTS
  3. where CONSTRAINT_NAME = 'FK31_1'

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

  1. select *
  2. from ALL_CONS_COLUMNS
  3. where CONSTRAINT_NAME = 'FK31_1'
rslzwgfq

rslzwgfq3#

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

相关问题