이 문서는 지원되지 않는 버전의 토토 핫을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 PostgreSQL : 문서 : 17 : 5.11. 계승버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

5.5. 계승

두 개의 테이블을 만들어 봅시다. 수도 테이블에는 상태가 포함되어 있습니다 도시 인 수도. 당연히 수도 테이블 도시에서 물려 받아야합니다.

테이블 도시 생성 (
    이름 텍스트,
    모집단 플로트,
    고도 int- (FT)
);

테이블 캐피탈 생성 (
    상태 문자 (2)
) 상속 (도시);

이 경우 캐피탈 행상속모든 속성 (이름, 모집단 및 고도) 부모, 도시로부터. 속성 이름의 유형입니다 이다텍스트, 네이티브토토 핫가변 길이를 입력하십시오 문자열. 속성 모집단의 유형은float, 네이티브토토 핫이중 정밀도를 입력하십시오 부동 소수점 번호. 주 수도에는 추가 속성이 있으며 상태는 상태를 보여줍니다. 안에토토 핫, 테이블은 0에서 상속 될 수 있습니다 더 많은 다른 테이블과 쿼리는 모든 행의 모든 ​​행을 참조 할 수 있습니다. 테이블 또는 테이블의 모든 행과 모든 후손들.

참고 :상속 계층은 실제로 a입니다 지시 된 acyclic 그래프.

예를 들어 다음 쿼리는 모든 이름을 찾습니다. 고도에 위치한 주 수도를 포함한 도시 500 피트 이상 :

이름, 고도를 선택하십시오
    도시에서
    고도 500;

반환 :

이름 | 고도
-----------+---------
 라스 베이거스 |     2174
 마리포사 |     1953
 매디슨 |      845

반면에 다음 쿼리는 모든 도시를 찾습니다. 주 수도가 아니며 고도에 위치하고 있습니다. 500ft :

이름, 고도를 선택하십시오
    도시에서만
    여기서 고도 500;

   이름 | 고도
-----------+---------
 라스 베이거스 |     2174
 마리포사 |     1953

여기"만"도시 전에 쿼리는 도시에서만 실행되어야하며 상속 계층 구조의 도시 아래 표. 많은 우리가 이미 논의한 명령 -select, 업데이트and삭제- this 지원"만"표기법.

경우에 따라 특정 테이블을 알고 싶을 수도 있습니다. 행이 시작되었습니다. 라는 시스템 열이 있습니다.Tableoid각 테이블에서 원래 테이블 :

C.Tableoid, C.Name, C.Altitude를 선택하십시오
도시에서 c
여기서 c.altitude 500;

반환 :

Tableoid |   이름 | 고도
----------+----------+----------
   139793 | 라스 베이거스 |     2174
   139793 | 마리포사 |     1953
   139798 | 매디슨 |      845

(이 예를 재현하려고하면 아마 다른 숫자 Oids.)와 함께pg_class실제 테이블을 볼 수 있습니다 이름 :

P.RelName, C.Name, C.Altitude를 선택하십시오
도시 C, pg_class p
여기서 c.altitude 500 및 c.tableoid = p.oid;

반환 :

Relname |   이름 | 고도
----------+----------+----------
 도시 | 라스 베이거스 |     2174
 도시 | 마리포사 |     1953
 수도 | 매디슨 |      845

감가 상각 :이전 버전의토토 핫, 기본 동작은 그렇지 않았습니다 쿼리에 자식 테이블을 포함합니다. 이것은 것으로 밝혀졌습니다 오류가 발생하기 쉬우 며 SQL99 표준을 위반하고 있습니다. 기존 구문 아래에서, 당신이 부여하는 서브 테이블을 얻으려면*테이블 이름으로. 예를 들어

선택 *에서 도시에서 *;

여전히 하위 테이블을 명시 적으로 지정할 수 있습니다 첨부*및 명시 적으로 작성하여 자식 테이블을 스캔하지 않음"만". 그러나 버전 7.1에서 시작하여 미개화 된 테이블 이름의 기본 동작은 스캔하는 것입니다. 기본값 이전에는 하위 테이블도 없지만 그래서. 이전 기본 동작을 얻으려면 구성을 설정하십시오 옵션SQL_INHERITANCE꺼짐, 예 :

sql_inheritance를 OFF로 설정하십시오;

또는 라인 추가토토 핫.conf파일.

상속 기능의 제한은 인덱스입니다 (고유 한 제약 포함) 및 외국 주요 제약 조건 만 상속 자녀가 아닌 단일 테이블에 적용하십시오. 따라서, 위의 예에서는 다른 테이블의 열을 지정참조 도시 (이름)다른 테이블은 도시 이름을 포함하지만 자본 이름이 아닙니다. 이것 부족은 아마도 일부 릴리스에서 고정 될 것입니다.