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