ID 열
중요
자격 증명 열을 사용할 때는 캐시 값을 신중하게 고려해야 합니다. 자세한 내용은 CREATE SEQUENCE 페이지의 중요 안내를 참조하세요.
워크로드 패턴을 기반으로 자격 증명 열을 가장 잘 사용하는 방법에 대한 지침은 시퀀스 및 자격 증명 열 작업 섹션을 참조하세요.
자격 증명 열은 암시적 시퀀스에서 자동으로 생성되는 특수 열입니다. 키 값을 생성하는 데 사용할 수 있습니다. 자격 증명 열을 만들려면 CREATE TABLE의 GENERATED ... AS IDENTITY 절을 사용합니다. 예를 들면 다음과 같습니다.
CREATE TABLE people ( id bigint GENERATED ALWAYS AS IDENTITY (CACHE 70000), ... );
또는 다음을 사용합니다.
CREATE TABLE people ( id bigint GENERATED BY DEFAULT AS IDENTITY (CACHE 70000), ... );
자세한 내용은 CREATE TABLE 섹션을 참조하세요.
자격 증명 열이 있는 테이블에서 INSERT 명령이 실행되고 자격 증명 열에 명시적으로 지정된 값이 없는 경우 암시적 시퀀스에서 생성된 값이 삽입됩니다. 예를 들어 앞의 정의를 사용하고 적절한 열을 추가로 가정하여 다음을 작성합니다.
INSERT INTO people (name, address) VALUES ('A', 'foo'); INSERT INTO people (name, address) VALUES ('B', 'bar');
1부터 id 열 값을 생성하여 다음 테이블 데이터를 생성합니다.
id | name | address ----+------+--------- 1 | A | foo 2 | B | bar
또는 값 대신 DEFAULT 키워드를 지정하여 시퀀스 생성 값을 명시적으로 요청할 수 있습니다.
INSERT INTO people (id, name, address) VALUES (DEFAULT, 'C', 'baz');
마찬가지로 DEFAULT 키워드는 UPDATE 명령에 사용할 수 있습니다.
따라서 여러 가지 면에서 자격 증명 열은 기본값이 있는 열처럼 동작합니다.
열 정의의 ALWAYS 및 BY DEFAULT 절은 INSERT 및 UPDATE 명령에서 사용자 지정 값을 명시적으로 처리하는 방법을 결정합니다. INSERT 명령에서 ALWAYS가 선택된 경우 INSERT 문이 OVERRIDING SYSTEM VALUE를 지정하는 경우에만 사용자 지정 값이 허용됩니다. BY DEFAULT를 선택하면 사용자 지정 값이 우선합니다. 따라서 BY DEFAULT를 사용하면 기본값과 더 유사한 동작이 발생하며, 기본값은 명시적 값으로 재정의될 수 있는 반면 ALWAYS는 실수로 명시적 값을 삽입하는 것에 대해 더 많은 보호를 제공합니다.
자격 증명 열의 데이터 형식은 시퀀스에서 지원하는 데이터 형식 중 하나여야 합니다. (CREATE SEQUENCE를 참조하세요.) 자격 증명 열을 만들 때 연결된 시퀀스의 속성을 지정하거나(CREATE TABLE 참조) 나중에 변경할 수 있습니다(ALTER TABLE 참조).
자격 증명 열은 자동으로 NOT NULL로 표시됩니다. 그러나 자격 증명 열은 고유성을 보장하지 않습니다. (시퀀스는 일반적으로 고유한 값을 반환하지만 앞서 설명한 대로 시퀀스를 재설정하거나 값을 자격 증명 열에 수동으로 삽입할 수 있습니다.) PRIMARY KEY 또는 UNIQUE 제약 조건을 사용하여 고유성을 적용해야 합니다.