이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 8.7. 열거 된 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8.7. 열거 롤 토토

열거(열거) 유형은 정적이고 순서가 지정된 값 세트를 구성하는 데이터 유형입니다. 그들은 다음과 같습니다.열거형유형은 다양한 프로그래밍 언어에서 지원됩니다. 열거형 유형의 예로는 요일 또는 데이터에 대한 상태 값 집합이 있습니다.

8.7.1. 열거형 선언

열거형 유형은 다음을 사용하여 생성됩니다.롤 토토 생성명령, 예:

CREATE TYPE 기분 AS ENUM ('슬픔', '괜찮아', '행복');

일단 생성된 열거형 유형은 다른 유형과 마찬가지로 테이블 및 함수 정의에 사용할 수 있습니다.

CREATE TYPE 기분 AS ENUM ('슬픔', '괜찮아', '행복');
테이블 만들기 사람(
    이름 텍스트,
    current_mood 기분
);
INSERT INTO person VALUES ('모에', '행복');
SELECT * FROM 사람 WHERE current_mood = '행복';
 이름 | 현재_기분 
-----+----------------
 모에 | 행복하다
(1행)

8.7.2. 주문

열거형 유형의 값 순서는 유형이 생성될 때 값이 나열된 순서입니다. 모든 표준 비교 연산자 및 관련 집계 함수가 열거형에 지원됩니다. 예를 들어:

INSERT INTO person VALUES ('래리', '슬픈');
INSERT INTO person VALUES ('Curly', 'ok');
SELECT * FROM 사람 WHERE current_mood  '슬픔';
 이름 | 현재_기분 
------+---------------
 모에 | 행복하다
 곱슬 | 알았어
(2열)

SELECT * FROM 사람 WHERE current_mood  'sad' ORDER BY current_mood;
 이름 | 현재_기분 
------+---------------
 곱슬 | 알았어
 모에 | 행복하다
(2열)

이름 선택
사람에게서
WHERE current_mood = (SELECT MIN(current_mood) FROM 사람);
 이름  
-------
 래리
(1행)

8.7.3. 롤 토토 안전

각각의 열거된 데이터 유형은 별개이며 다른 열거된 유형과 비교할 수 없습니다. 다음 예를 참조하세요.

CREATE TYPE 행복 AS ENUM ('행복함', '매우 행복함', '황홀함');
CREATE TABLE 휴일(
    num_weeks 정수,
    행복 행복
);
INSERT INTO holiday(num_weeks,happiness) VALUES (4, 'happy');
INSERT INTO holiday(num_weeks,happiness) VALUES (6, '매우 행복함');
INSERT INTO holiday(num_weeks,happiness) VALUES (8, 'ecstatic');
INSERT INTO holiday(num_weeks,happiness) VALUES (2, 'sad');
오류: 열거형 행복에 대한 잘못된 입력 값: "sad"
SELECT 사람.이름, 휴일.num_weeks FROM 사람, 휴일
  어디에서 person.current_mood = holiday.happiness;
오류: 연산자가 존재하지 않습니다. 기분 = 행복

정말로 그런 일을 해야 한다면 맞춤 연산자를 작성하거나 쿼리에 명시적 캐스트를 추가할 수 있습니다.

사람, 휴일에서 사람.이름, 휴일.num_weeks 선택
  어디에서 person.current_mood::text = holiday.happiness::text;
 이름 | num_weeks 
-----+-------------
 모에 |         4
(1행)

8.7.4. 구현 세부정보

열거형 라벨은 대소문자를 구분하므로'행복해요'다음과 동일하지 않습니다'행복해요'. 라벨의 공백도 중요합니다.

열거형 유형은 주로 정적 값 집합을 위한 것이지만 기존 열거형 유형에 새 값을 추가하고 값 이름을 바꾸는 기능이 지원됩니다(참조변경 롤 토토). 열거형 유형에서 기존 값을 제거할 수 없으며 열거형 유형을 삭제하고 다시 생성하지 않는 한 이러한 값의 정렬 순서를 변경할 수도 없습니다.

열거형 값은 디스크에서 4바이트를 차지합니다. 열거형 값의 텍스트 레이블 길이는 다음으로 제한됩니다.NAMEDATALEN설정이 다음으로 컴파일됨포스트그레SQL; 표준 빌드에서는 최대 63바이트를 의미합니다.

내부 열거형 값에서 텍스트 라벨로의 번역은 시스템 카탈로그에 보관됩니다.pg_enum. 이 카탈로그를 직접 쿼리하는 것이 유용할 수 있습니다.