primary_key와 foreign_key 관계 조회 0 3 1,743

by 배고픈인간 [2014.12.04 17:41:30]


primary_key로 지정된 제약조건명을 알고있습니다.

제약조건명으로 primary_key와 연결된 foreign_key를 조회할수있나요? 

by 거제도원주민 [2014.12.04 22:07:53]
요구하시는 답변이 될런지 ... 확인 해 보시기 바랍니다.
좀 더 나은 답변이 나오면 저도 공부좀 해 보구요 .....

아래 2개의 궈리를 참조하세요
내가 어떤테이블을 참조하는지
나를 어떤테이블들이 참조하는지 확인하는 궈리입니다.

owner명 : CNSONE
table명 : PI210M
1.PI210M 테이블이 마스타 테이블을 참조하는지 조회하는 쿼리입니다.

SELECT FORTBL.CONSTRAINT_NAME CNST_NAME,
               IDXTBL.COLUMN_NAME,
               IDXTBL.COLUMN_POSITION COL_PSTN,
               REFTBL.TABLE_NAME
        FROM   sys.ALL_CONSTRAINTS FORTBL,
               sys.ALL_CONSTRAINTS REFTBL,
               sys.ALL_IND_COLUMNS IDXTBL
        WHERE  FORTBL.OWNER = 'CNSONE'
               AND FORTBL.TABLE_NAME = 'PI210M'
               AND FORTBL.CONSTRAINT_TYPE = 'R'
               AND REFTBL.CONSTRAINT_TYPE = 'P'
               AND REFTBL.OWNER = FORTBL.R_OWNER
               AND REFTBL.CONSTRAINT_NAME = FORTBL.R_CONSTRAINT_NAME
               AND IDXTBL.INDEX_OWNER = REFTBL.OWNER
               AND IDXTBL.INDEX_NAME = REFTBL.INDEX_NAME 

2.PI210M 테이블을  어떤 테이블들이 참조하는지를  확인하는 쿼리입니다.

SELECT REF_TBL.CONSTRAINT_NAME CNST_NAME,
               IND_COL.COLUMN_NAME,
               IND_COL.COLUMN_POSITION COL_PSTN
        FROM   sys.ALL_CONSTRAINTS FOR_TBL,
               sys.ALL_CONSTRAINTS REF_TBL,
               sys.ALL_IND_COLUMNS IND_COL
        WHERE  FOR_TBL.OWNER = 'CNSONE'
               AND FOR_TBL.TABLE_NAME = 'PI210M'
               AND FOR_TBL.CONSTRAINT_TYPE = 'P'
               AND FOR_TBL.OWNER = REF_TBL.R_OWNER
               AND FOR_TBL.CONSTRAINT_NAME = REF_TBL.R_CONSTRAINT_NAME
               AND FOR_TBL.OWNER = IND_COL.TABLE_OWNER
               AND FOR_TBL.TABLE_NAME = IND_COL.TABLE_NAME
               AND FOR_TBL.CONSTRAINT_NAME = IND_COL.INDEX_NAME

수고하세요!!


by 배고픈인간 [2014.12.05 12:54:19]

감사합니다.

한번 확인해 보도록 하겠습니다.

구글링 하면서 한개 발견한게 있는데 이게 맞는지는 모르겠네요.

USER_CONSTRAINTS 테이블에서 

CONSTRAINT_NAME, CONSTRAINT_TYPE, R_CONSTRAINT_NAME 를 조회해도 나올꺼 같습니다.

CONSTRAINT_NAME  : 제약조건명

CONSTRAINT_TYPE : 제약조건 type 

R_CONSTRAINT_NAME : 관계된 제약조건명


by 배고픈인간 [2014.12.05 12:58:58]

확인해보니까 전체 유저를 다 검색하네요

감사합니다. 많이 배웠습니다.

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