2012-12-18 3 views
3

누구나이 설명에서 SQL Server의 FK 인 열을 반환하지만 postgresql에서 아무것도 반환하지 않는 이유를 설명 할 수 있습니까?SQL 서버의 SQL 표준 및 postrgesql

표는 모두 RDBMS에 동일하며 그것은 PostgreSQL을 저장 "수신"외래 키 반면 그 SQL 서버에 저장 "나가는"외래 키를 보인다 FKS

select * 
from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu, 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc 
where ccu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME 
    and ccu.TABLE_NAME = 'table_name' 
    and tc.CONSTRAINT_TYPE = 'FOREIGN KEY'; 
+1

테이블 이름의 대소 문자를 구분합니까? –

+0

제거 할 때 "및 tc.CONSTRAINT_TYPE = '외래 키'"postgresql 열 제한 조건 형식 = 검사 또는 열 whith 제약 조건 형식 = 기본 키를 반환합니다. 그래서 대소 문자 구분은 괜찮습니다. – user1759320

+0

PostgreSQL 9.0을 사용하고 있습니다. – user1759320

답변

4

않아도됩니다.

SQL 서버 예 : http://sqlfiddle.com/#!6/57493/3
PostgreSQL의 예 :

http://sqlfiddle.com/#!12/57493/5 불행하게도 ANSI 표준이 올바른지 어느 말을하지 않습니다. 그것은 단지 말한다

TABLE_CONSTRAINTS베이스 테이블

CONSTRAINT_TYPE의 값이 다음의 의미 :
FOREIGN KEY : 기재되는 제약 조건 외래 키 제약이다.
...

+1

모든 RDBMS에서이 항목을 표준화하는 일련의보기를 정의하고 게시 할 수 있었으면 좋겠습니다. 아아 ... –