Oracle约束检查

时间:2014-05-15 07:43:32

标签: oracle

我想检查film.language_id是否引用language.language_id。 我用了代码:

SELECT *
FROM all_tab_columns
WHERE column_name = 'film.language';

结果:

no rows selected

这是否意味着没有引用/引用约束?

1 个答案:

答案 0 :(得分:1)

如果您想知道列是否通过外键约束引用另一列,您可以执行以下操作:

查明列是否在约束中:

select constraint_name from user_cons_columns
where table_name='<Your_table>'
and column_name='<Your_column>';

如果是这样,它将为您提供该约束的名称。 接下来,您可以了解该约束是否是外键约束以及外键指向的位置:

select constraint_type
      ,r_constraint_name
  from user_constraints
 where constraint_name='<your constraint name>';

如果约束是外键约束,则其类型为&#39; R&#39;。这也将为您提供外键与之关联的主键约束的名称。

根据主键约束的名称,您可以按如下方式找到表和列:

select table_name
      ,column_name
  from user_cons_columns
 where constraint_name = 'Your PK constraint'

为了让生活更轻松,您可以将所有这些查询结合在一起。但我把它留给你。