윈 토토 된 열은 항상 다른 열에서 계산되는 특수 열입니다. 따라서 열에 대한 뷰는 테이블에 대한 것입니다. 윈 토토 된 열에는 두 가지 종류가 있습니다 : 저장 및 가상. 저장된 윈 토토 열은 작성 (삽입 또는 업데이트)시 (삽입 또는 업데이트) 계산되며 마치 정상적인 열인 것처럼 저장을 차지합니다. 가상 윈 토토 열은 스토리지를 차지하지 않으며 읽을 때 계산됩니다. 따라서, 가상 윈 토토 열은보기와 유사하고 저장된 윈 토토 열은 구체화 된 뷰와 유사하다 (항상 자동으로 업데이트된다). PostgreSQL은 현재 저장된 윈 토토 열만 구현합니다.
윈 토토 된 열을 만들려면를 사용하십시오.항상 윈 토토
조항테이블 윈 토토
, 예 :
테이블 사람 만들기 (
...,
height_cm 숫자,
height_in 숫자항상 윈 토토 (height_cm / 2.54) 저장된);
키워드저장
저장된 윈 토토 열을 선택하려면 지정해야합니다. 보다테이블 윈 토토자세한 내용은
윈 토토 된 열은 직접 작성할 수 없습니다. 안에삽입
또는업데이트
명령, 윈 토토 된 열에 대해 값을 지정할 수 없지만 키워드기본값
지정 될 수 있습니다.
기본 및 윈 토토 열이있는 열의 차이점을 고려하십시오. 열 기본값은 다른 값이 제공되지 않은 경우 행이 처음 삽입되면 한 번 평가됩니다. 행이 변경 될 때마다 윈 토토 된 열이 업데이트되고 재정의 할 수 없습니다. 열 기본값은 테이블의 다른 열을 참조 할 수 없습니다. 세대 표현은 일반적으로 그렇게 할 것입니다. 열 기본값은 휘발성 함수를 사용할 수 있습니다 (예 :random ()
또는 현재 시간을 참조하는 기능; 윈 토토 된 열에는 허용되지 않습니다.
윈 토토 된 열과 관련된 열 및 테이블의 정의에 여러 제한이 적용됩니다.
윈 토토 표현식은 불변 함수 만 사용할 수 있으며 하위 쿼리를 사용하거나 어떤 식 으로든 현재 행 외에 다른 것을 참조 할 수 없습니다.
윈 토토 표현식은 다른 윈 토토 열을 참조 할 수 없습니다.
윈 토토 표현식은을 제외하고 시스템 열을 참조 할 수 없습니다.Tableoid
.
윈 토토 된 열에 열 기본값 또는 ID 정의를 가질 수 없습니다.
윈 토토 열이 파티션 키의 일부가 될 수 없습니다.
외국 테이블은 열을 윈 토토 할 수 있습니다. 보다외국 테이블 만들기자세한 내용.
상속 재산 :
상위 열이 윈 토토 된 열인 경우 자식 열은 동일한 표현식을 사용하여 윈 토토 된 열이어야합니다. 어린이 칼럼의 정의에서를 떠나십시오윈 토토
조항, 부모가 복사 할 것입니다.
다중 상속의 경우, 하나의 부모 열이 윈 토토 된 열인 경우 모든 상위 열은 열을 윈 토토하고 동일한 표현식을 사용해야합니다..
상위 열이 윈 토토 된 열이 아닌 경우, 하위 열은 윈 토토 된 열로 정의 될 수 있습니다..
윈 토토 된 열의 사용에 추가 고려 사항이 적용됩니다.
윈 토토 된 열은 기본 기본 열과 별도로 액세스 권한을 유지합니다. 따라서 특정 역할이 윈 토토 된 열에서 읽을 수 있지만 기본 기본 열에서 읽을 수 있도록 준비 할 수 있습니다.
윈 토토 된 열은 개념적으로, 이후에 업데이트되었습니다전
트리거가 실행되었습니다. 따라서 a의 기본 열로 변경됩니다.전
트리거는 윈 토토 된 열에 반영됩니다. 그러나 반대로, 윈 토토 된 열에 액세스 할 수 없습니다전
트리거.
윈 토토 된 열이 논리적 복제를 위해 건너 뜁니다.