Oracle:检查复合(!)外键是否存在

时间:2014-04-24 15:57:38

标签: sql oracle foreign-keys

所以我知道构成复合主键的表名两列名,如果存在此外键,我必须以编程方式检查(Oracle SQL函数) 。 如果外键存在,它的名称是不可预测的,因为它是自动生成的(如SYS_C0075474),所以我不能依赖它。 我知道user_constraints表,但它似乎缺乏必要的信息。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您似乎需要[user|all|dba]_cons_columns view

这样的东西
SELECT constraint_name
  FROM user_cons_columns
 WHERE table_name = <<your table name>>
   AND column_name IN( <<your first column>>, <<your second column>> )
 GROUP BY constraint_name
HAVING COUNT(*) = 2

将为您提供在这两列上定义的约束的名称。