[SQL] 어떻게하는 테이블이 오라클 SQL Developer에서 특정 테이블을 참조 찾을 수 있습니까?
SQL어떻게하는 테이블이 오라클 SQL Developer에서 특정 테이블을 참조 찾을 수 있습니까?
나는 테이블에 대한 정보를 볼 수있어 경우, 오라클 SQL Developer에서, 나는 나 (테이블이이 테이블에서 참조하여 등) 외래 키를 볼 수 있도록 제약을 볼 수 있습니다, 내가 무엇을 볼 수있는 종속성을 볼 수 있습니다 패키지와 같은 참조 테이블. 하지만 테이블을 참조하는 테이블을 찾는 방법을 모르겠어요.
예를 들어, 내가 emp 테이블에서 찾고 있어요 말한다. 다른 테이블의 emp_dept가 어떤 직원이 어떤 부서에서 일을 캡처하는 참조 EMP_ID 통해 emp 테이블, emp 테이블의 기본 키. 나없이 emp_dept 테이블 참조 emp 테이블에서, emp_dept 테이블이 존재한다는 것을 알 필요 찾을 수 (가 아닌 SQL을 통해 프로그램의 일부 UI 요소를 통해) 방법이 있나요?
해결법
-
==============================
1.제 오라클 SQL Developer에서 사용 가능한 그런 옵션이 없습니다.
제 오라클 SQL Developer에서 사용 가능한 그런 옵션이 없습니다.
당신은 손으로 쿼리를 실행하거나 (인스턴스 PLSQL 개발자 등의 옵션이있는 경우) 다른 도구를 사용해야합니다. 다음 SQL은 PLSQL 개발자에 의해 사용되는 하나입니다 :
select table_name, constraint_name, status, owner from all_constraints where r_owner = :r_owner and constraint_type = 'R' and r_constraint_name in ( select constraint_name from all_constraints where constraint_type in ('P', 'U') and table_name = :r_table_name and owner = :r_owner ) order by table_name, constraint_name
어디 r_owner 스키마이며, r_table_name은 참조를 찾고있는 테이블입니다. 이름은 대소 문자를 구분합니다
오라클 SQL Developer의 보고서 탭에서 종속성을 포함하여 현재 사용자가 액세스 프로 시저, 패키지, 기능, 패키지 기관 및 트리거 간의 종속성 "을 의미한다이 ALL_DEPENDENCIES에서이다"종속성 모든 테이블 / "옵션이 있기 때문에주의 데이터베이스 링크없이 생성 전망합니다. ". 그런 다음이 보고서는 귀하의 질문에 대한 가치가 없습니다.
-
==============================
2.확장은 다음을 수행으로 SQL 개발자에이를 추가하려면 :
확장은 다음을 수행으로 SQL 개발자에이를 추가하려면 :
<items> <item type="editor" node="TableNode" vertical="true"> <title><![CDATA[FK References]]></title> <query> <sql> <![CDATA[select a.owner, a.table_name, a.constraint_name, a.status from all_constraints a where a.constraint_type = 'R' and exists( select 1 from all_constraints where constraint_name=a.r_constraint_name and constraint_type in ('P', 'U') and table_name = :OBJECT_NAME and owner = :OBJECT_OWNER) order by table_name, constraint_name]]> </sql> </query> </item> </items>
-
==============================
3.아래의 쿼리에 EMP와 [테이블]을 교체
아래의 쿼리에 EMP와 [테이블]을 교체
select owner,constraint_name,constraint_type,table_name,r_owner,r_constraint_name from all_constraints where constraint_type='R' and r_constraint_name in (select constraint_name from all_constraints where constraint_type in ('P','U') and table_name='[YOUR TABLE]');
-
==============================
4.2015 년 5 월 출시 된 SQL 개발자 4.1, 쇼 테이블 외래 키는 개체 관계 다이어그램 형식으로 표를 참조 모델 탭을 추가했다.
2015 년 5 월 출시 된 SQL 개발자 4.1, 쇼 테이블 외래 키는 개체 관계 다이어그램 형식으로 표를 참조 모델 탭을 추가했다.
-
==============================
5.당신은 ALL_CONSTRAINTS보기에서이를 조회 할 수 있습니다 :
당신은 ALL_CONSTRAINTS보기에서이를 조회 할 수 있습니다 :
SELECT table_name FROM ALL_CONSTRAINTS WHERE constraint_type = 'R' -- "Referential integrity" AND r_constraint_name IN ( SELECT constraint_name FROM ALL_CONSTRAINTS WHERE table_name = 'EMP' AND constraint_type IN ('U', 'P') -- "Unique" or "Primary key" );
-
==============================
6.어떻게 이런 일에 대해 :
어떻게 이런 일에 대해 :
SELECT c.constraint_name, c.constraint_type, c2.constraint_name, c2.constraint_type, c2.table_name FROM dba_constraints c JOIN dba_constraints c2 ON (c.r_constraint_name = c2.constraint_name) WHERE c.table_name = <TABLE_OF_INTEREST> AND c.constraint_TYPE = 'R';
-
==============================
7.
SELECT DISTINCT table_name, constraint_name, column_name, r_table_name, position, constraint_type FROM (SELECT uc.table_name, uc.constraint_name, cols.column_name, (SELECT table_name FROM user_constraints WHERE constraint_name = uc.r_constraint_name) r_table_name, (SELECT column_name FROM user_cons_columns WHERE constraint_name = uc.r_constraint_name AND position = cols.position) r_column_name, cols.position, uc.constraint_type FROM user_constraints uc inner join user_cons_columns cols ON uc.constraint_name = cols.constraint_name WHERE constraint_type != 'C') START WITH table_name = '&&tableName' AND column_name = '&&columnName' CONNECT BY NOCYCLE PRIOR table_name = r_table_name AND PRIOR column_name = r_column_name;
-
==============================
8.이 년 동안 제품에왔다 - 그것은 2011 년에 제품에 아니었지만.
이 년 동안 제품에왔다 - 그것은 2011 년에 제품에 아니었지만.
그러나, 단순히 모델 페이지를 클릭합니다.
당신이이 기능에 액세스 할 수 (2013 년 발표) 이상 버전 4.0에서 확인하십시오.
-
==============================
9.XML 아래는 외래 키와 관련된 열을 얻는 데 도움이 될 것입니다 사용하여, SQL 개발자 플러그인에 대한 위의 대답에 추가합니다.
XML 아래는 외래 키와 관련된 열을 얻는 데 도움이 될 것입니다 사용하여, SQL 개발자 플러그인에 대한 위의 대답에 추가합니다.
<items> <item type="editor" node="TableNode" vertical="true"> <title><![CDATA[FK References]]></title> <query> <sql> <![CDATA[select a.owner, a.constraint_name, a.table_name, b.column_name, a.status from all_constraints a join all_cons_columns b ON b.constraint_name = a.constraint_name where a.constraint_type = 'R' and exists( select 1 from all_constraints where constraint_name=a.r_constraint_name and constraint_type in ('P', 'U') and table_name = :OBJECT_NAME and owner = :OBJECT_OWNER) order by table_name, constraint_name]]> </sql> </query> </item> </items>
from https://stackoverflow.com/questions/1143728/how-can-i-find-which-tables-reference-a-given-table-in-oracle-sql-developer by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 차세대 데이터베이스 [폐쇄] (0) | 2020.04.05 |
---|---|
[SQL] 자연의 차이 가입 및 내부 조인 (0) | 2020.04.05 |
[SQL] 문자열의 부품을 교체, 열 값을 업데이트 (0) | 2020.04.05 |
[SQL] SQL 서버에서 중복 행을 찾기 (0) | 2020.04.05 |
[SQL] 그것은) (카운트에 조건을 지정 할 수 있습니까? (0) | 2020.04.05 |