1

例外が発生しています

ORA-02291: 整合性制約(ADS.ADS_JOB_FAMILIES_F03)に違反しています - 親キーが見つかりません

テーブルに制約が挿入されていることがわかりました。

親キーと子キーを見つける方法...(列)。

注:Oracleを使用しています

4

1 に答える 1

3

親テーブルの場合:

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';
于 2012-08-08T18:53:45.120 に答える