所以我知道构成复合主键的表名,两列名,如果存在此外键,我必须以编程方式检查(Oracle SQL函数) 。 如果外键存在,它的名称是不可预测的,因为它是自动生成的(如SYS_C0075474),所以我不能依赖它。 我知道user_constraints表,但它似乎缺乏必要的信息。 有什么建议吗?
答案 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
将为您提供在这两列上定义的约束的名称。