我遇到了一个例外
ORA-02291: 违反完整性约束 (ADS.ADS_JOB_FAMILIES_F03) - 未找到父键
我发现表中的约束正在插入。
如何找到父键和子键...(列)。
注意:我正在使用 Oracle
我遇到了一个例外
ORA-02291: 违反完整性约束 (ADS.ADS_JOB_FAMILIES_F03) - 未找到父键
我发现表中的约束正在插入。
如何找到父键和子键...(列)。
注意:我正在使用 Oracle
对于父表:
select * from all_constraints
where constraint_name in (
select R_CONSTRAINT_NAME
from all_constraints
where constraint_name = 'ADS_JOB_FAMILIES_F03');
对于父列:
select *
from all_cons_columns
where constraint_name in (
select constraint_name
from all_constraints
where constraint_name in (
select R_CONSTRAINT_NAME
from all_constraints
where constraint_name = 'ADS_JOB_FAMILIES_F03'));
这并不完全完美,因为它忽略了约束的所有者。但我认为它会为你工作。
编辑:我现在什至发现了这个。这会给出这样的查询:
SELECT a.table_name, a.column_name, a.constraint_name, c.owner,
-- referenced pk
c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk
FROM all_cons_columns a
JOIN all_constraints c ON a.owner = c.owner
AND a.constraint_name = c.constraint_name
JOIN all_constraints c_pk ON c.r_owner = c_pk.owner
AND c.r_constraint_name = c_pk.constraint_name
WHERE a.constraint_name = 'ADS_JOB_FAMILIES_F03';