2011-12-09 3 views
2

오라클의 외래 키 테이블 및 컬럼 이름을 가져와야합니다. 아무나 다음 문장을 확인할 수 있습니까?오라클의 제약 조건/외래 키 정보

SELECT a.table_name AS TableWithForeignKey, b.column_name AS ForeignKeyColumn 
FROM user_constraints a INNER JOIN user_cons_columns b 
ON (a.constraint_name = b.constraint_name) AND (a.table_name = b.table_name) 
and a.constraint_type = 'R' 

나는 INNER이 (ON 후) 부분을 조인에 대해 확실하지 않다 파트 (Part) : 1 : 내가 constraints_ID 뭔가를 찾을 수 없습니다로

(a.constraint_name = b.constraint_name) AND (a.table_name = b.table_name) 

, 1 일치하는이 한 정도로입니다 두 테이블 user_constraintsuser_cons_columns

에서 행 감사합니다.

답변

2

내가 그렇게 2 개보기 에 합류하기위한

a.constraint_name = b.constraint_name 

을 사용하여, 나는 그것이

+0

내가 시작 부분에 다음과 같이 그것을했다하지만 난이 constraint_name을 고유 정말 확실하지 않았다 OK 생각, 왜 이잖아 htis와 테이블 이름을 결합했습니다. 당신은 그 독특한 것을 확실히 압니까? – CloudyMarble

+1

주어진 사용자에 대해 제약 조건 이름을 중복해서 사용할 수 없습니다. 쿼리가 user_constraints 및 user_cons_columns에 있으므로 중복 이름에 대해 걱정할 필요가 없습니다. all_constraints를 쿼리하는 경우 중요 할 수 있습니다. – DCookie