테이블 제약 조건 정의 - Amazon Redshift

테이블 제약 조건 정의

고유성, 프라이머리 키 및 외래 키 제약 조건은 참고용일 뿐 표를 채울 때 Amazon Redshift에 적용되지는 않습니다. 예를 들어 종속성이 있는 테이블에 데이터를 삽입하면 제약 조건을 위반하더라도 삽입이 성공할 수 있습니다. 그래도 기본 키와 외래 키는 계획 힌트로 사용되며, ETL 프로세스 또는 애플리케이션의 다른 프로세스가 무결성을 적용하는 경우에는 선언되어야 합니다.

예를 들어 쿼리 플래너는 특정 통계 계산에서 기본 키와 외래 키를 사용합니다. 하위 쿼리 상관 관계 제거 기술에 영향을 미치는 고유성과 참조 관계를 추론하기 위해서입니다. 이를 통해 많은 수의 조인 순서를 지정하고 중복 조인을 제거할 수 있습니다.

플래너가 이러한 키 관계를 이용하지만 여기에는 Amazon Redshift 테이블의 모든 키가 로드된 상태로 유효하다는 가정을 전제로 합니다. 애플리케이션이 잘못된 외래 키 또는 기본 키를 허용하는 경우에는 일부 쿼리가 부정확한 결과를 반환할 수 있기 때문입니다. 예를 들어 SELECT DISTINCT 쿼리는 기본 키가 고유하지 않을 경우 중복 행을 반환할 수도 있습니다. 유효성이 의심된다면 키 제약 조건을 테이블에 정의하지 마십시오. 그러나 유효성이 보장되는 경우에는 프라이머리 및 외래 키와 고유성 제약 조건을 반드시 선언해야 합니다.

Amazon Redshift는 NOT NULL 열 제약 조건을 적용합니다.

테이블 제약 조건에 대한 자세한 내용은 CREATE TABLE 섹션을 참조하세요. 종속성이 있는 테이블을 삭제하는 방법에 대한 내용은 DROP TABLE 섹션을 참조하세요.