기본 키
PostgreSQL의 기본 키란 무엇인가요?
기본 키는 각 행을 고유하게 식별하는 열 또는 열의 집합입니다. PostgreSQL은 고유 B-tree 인덱스와 NOT NULL로 이를 강제합니다.
기본 키 제약 조건은 하나의 열 또는 열 그룹을 테이블 행의 식별자로 지정합니다. 그 값은 고유해야 하며 null이 아니어야 합니다. 하나의 테이블에는 기본 키를 최대 하나만 둘 수 있습니다.
기본 키를 추가하면 해당 열에 고유 B-tree 인덱스가 자동으로 생성되고 열이 NOT NULL로 지정됩니다. 다른 테이블의 외래 키는 보통 기본 키를 참조하며, 많은 도구는 모든 테이블에 기본 키가 있다고 가정합니다. 흔히 IDENTITY 열이나 제품 코드 같은 자연 키를 사용합니다.
예제
이 예제는 sku를 키로 하는 테이블을 만들고, 중복 키를 ON CONFLICT DO NOTHING과 함께 삽입해 실패하는 대신 건너뛰게 한 다음, PostgreSQL이 키를 위해 만든 인덱스를 나열합니다.
CREATE TABLE products (
sku text PRIMARY KEY,
name text NOT NULL
);
INSERT INTO products VALUES ('P-1', 'Lamp');
INSERT INTO products VALUES ('P-1', 'Desk') ON CONFLICT DO NOTHING;
SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'products';확장 없이 기본 PostgreSQL 16 또는 17에서 실행되는 일반 SQL입니다. 버려도 되는 빈 데이터베이스에서 실행하세요.
출처
PostgreSQL 공식 문서(영문)입니다.