부모키 확인 0 4 3,791

by 해양 DB [2010.04.16 13:12:07]


err2.JPG (76,758Bytes)

부모키 확인은 어떻게 하죠?

프로시져로 인서트 문을 만들었는데 에러가 떠서 물어보니까 부모키를 확인하라고 하시더라구요

그런데 제가 초보라 부모키가 어떤건지는 알겠는데 어떻게 확인을하고 어떻게 수정을해야되는지는 잘 모르겠습니다.

고수님들의 조언 부탁드리겠습니다.

코드내용과 테이블정보는 그림파일로 첨부했습니다.

by proud [2010.04.16 13:21:29]
fk에 있는 데이터는 그 fk가 reference하는 pk에 반드시 있어야 합니다.

by 현 [2010.04.16 13:32:42]
테이블의 정보를 desc로 주시면 fk constraint는 나오질 않습니다.
erd를 보시면 부모테이블이 어떤 것인지 알 수 있을 텐데요..
user_constraints 테이블을 보시면 어디랑 연결되어 있는지 알 수 있습니다.

by proud [2010.04.16 14:21:44]
해당유저로 sqlplus 접속 후 아래 쿼리를 실행 후,

column r_constraint_name new_value __r_const_nm
column table_name new_value __t_nm

select r_constraint_name
from user_constraints
where constraint_name = 'KCF_CONT_MM_FK2'
;

select constraint_name
,constraint_type
,table_name
from user_constraints
where constraint_name = '&__r_const_nm'
;

select owner
,constraint_name
,table_name
,column_name
,position
from user_cons_columns
where constraint_name = '&__r_const_nm'
and table_name = '&__t_nm'
/

결과 중 가장 마지막에 table과 column명을 이용하여...

select count(*)
from table
where column = 'appp000'
/

해보세요

appp000는 이전 질문에서 인서트 하시려는 값으로 보여서 쓴 겁니다.

그 결과가 0건이면 pk 컬럼에 그 값이 존재하지 않는 겁니다.

-- 오타가 있어서 수정했습니다.

by 손님 [2010.04.16 15:02:36]
그냥 지나가다 몇 자 올립니다.
업무에 사용하여 정말 급한 일이 아니라면 혼자 찾아보는 시간을
많이 갖는 것이 공부에 정말 도움이 되는 것 같습니다.
저는 업무에 모르는 것을 혼자하려고 끙끙거리면서 그래도
실력이 조금씩 늘었고, 이것이 습관이 되면 참 좋더라고요 ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입