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