2012-07-11 3 views
2

오라클을 처음 사용했습니다. , 삽입 문의 경우오라클 무결성 제약

:

내가 수동으로 DB에 무언가를 삽입 :

insert into ATTR_TYPE_VALUE (ATTR_TYPE_ID, VALID_VALUE, CREATED_BY) 
(select ATTR_TYPE_ID, 'Ad', 2 from ATTR_TYPE where VALUE = 'ind') 

그리고 나는 다음과 같은 오류 있어요 :

여기

ERROR at line 1: ORA-02291: integrity constraint (LO.ATTR_TYPE_VALUE_FK02) violated - parent key not found

내가 연구에 발견 무엇을 이 ORA-02291 오류는 외부 키 제약 조건에 정의 된대로 일치하는 부모가없는 자식을 삽입하려고 할 때 일반적입니다. 이 경우 테이블에 상위 행을 추가 한 다음 하위 테이블 행을 다시 삽입해야합니다.

ATTR_TYPE 테이블에 존재하지 않는다는 의미입니까?

+0

어떤 값을 삽입 하시겠습니까? 그게 올바른 구문인지 모르겠습니다. 두 테이블의 스키마를 제공하십시오. –

답변

3

어떤 열이 ATTR_TYPE_VALUE_FK02이고 어떤 테이블과 열을 참조하고 있습니까?

SELECT fk_columns.table_name, 
     fk_columns.column_name, 
     fk_columns.position, 
     pk_columns.table_name, 
     pk_columns.column_name, 
     pk_columns.position 
    FROM all_constraints fk_constraint, 
     all_cons_columns fk_columns, 
     all_cons_columns pk_columns 
WHERE fk_constraint.owner    = 'LO' 
    AND fk_constraint.constraint_name = 'ATTR_TYPE_VALUE_FK02' 
    AND fk_constraint.owner    = fk_columns.owner 
    AND fk_constraint.constraint_name = fk_columns.constraint_name 
    AND fk_constraint.r_owner   = pk_columns.owner 
    AND fk_constraint.r_constraint_name = pk_columns.constraint_name 
+2

_gasp_ 암시 적 조인입니까?)? – Ben

+3

@Ben - 공룡이 지구를 돌아 다녔을 때 작성한 쿼리를 파헤 치면 SQL 99 조인 구문이 지원되지 않습니다. :-) –

관련 문제