이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 8.7. 열거 된 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.7. 열거 된 와이즈 토토

열거 된 (ENUM) 와이즈 토토은 정적을 포함하는 데이터 와이즈 토토입니다. 주문 된 값 세트. 그것들은와 같습니다.enum다수의 프로그래밍에서 지원되는 유형 언어. 열거 유형의 예는 주 또는 데이터에 대한 상태 값 세트.

8.7.1. 선언 열거 된 와이즈 토토

enum 유형은를 사용하여 생성됩니다.와이즈 토토 만들기명령, 예 :

ENUM ( 'SAD', 'OK', 'Happy')로 와이즈 토토 기분을 만듭니다.

일단 생성되면 열거 와이즈 토토은 테이블과 기능에 사용할 수 있습니다. 다른 와이즈 토토과 마찬가지로 정의 :

Enum ( 'sad', 'ok', 'happy')로 유형 분위기를 만듭니다.
테이블 사람 만들기 (
    이름 텍스트,
    current_mood 분위기
);
개인 값에 삽입 ( 'moe', 'happy');
current_mood = 'Happy'가있는 사람에서 *를 선택하십시오.
 이름 | current_mood 
------+--------------
 모에 | 행복하다
(1 행)

8.7.2. 주문

열거 유형의 값 순서는 순서입니다. 유형이 생성 될 때 값이 나열되었습니다. 모든 표준 비교 연산자 및 관련 골재 기능이 지원됩니다 열거적. 예를 들어:

개인 값에 삽입 ( 'larry', 'sad');
개인 값에 삽입 ( 'Curly', 'Ok');
Current_mood 'SAD'가있는 사람에서 *를 선택하십시오.
 이름 | current_mood 
-------+-------------
 모에 | 행복하다
 곱슬 | 좋아요
(2 줄)

current_mood 'SAD'순서가있는 사람 중에서 선택 *을 선택하십시오. current_mood;
 이름 | current_mood 
-------+-------------
 곱슬 | 좋아요
 모에 | 행복하다
(2 줄)

이름을 선택하십시오
사람에게서
여기서 current_mood = (개인에서 select min (current_mood));
 이름  
-------
 래리
(1 행)

8.7.3. 와이즈 토토 안전

각 열거 된 데이터 와이즈 토토은 분리되어 있으며 비교할 수 없습니다. 다른 열거 된 와이즈 토토으로. 이 예를 참조하십시오 :

ENUM ( 'Happy', 'Breat Happy', 'Ecstatic')으로 유형의 행복을 만듭니다.
휴일 생성 (
    num_weeks 정수,
    행복 행복
);
휴일에 삽입 (NUM_WEEK, 행복) 값 (4, 'Happy');
휴일에 삽입 (Num_weeks, Happiness) 값 (6, '매우 행복');
휴일에 삽입 (Num_weeks, Happiness) 값 (8, 'Ecstatic');
휴일에 삽입 (Num_weeks, Happiness) 값 (2, 'SAD');
오류 : 열거 행복을위한 잘못된 입력 값 : "SAD"
Person.name, Holidays.num_weeks, Person, Holidays를 선택하십시오
  person.current_mood = holidays.happiness.
오류 : 운영자가 존재하지 않습니다 : mood = 행복

실제로 그런 일을해야한다면, 당신은 사용자 정의 연산자를 작성하거나 쿼리에 명시적인 캐스트를 추가하십시오.

Person.name, Holidays.num_weeks, Holidays를 선택하십시오
  person.current_mood :: text = holidays.happiness :: text;
 이름 | num_weeks 
------+----------
 모에 |         4
(1 행)

8.7.4. 구현 세부 사항

열거 레이블은 사례에 민감하므로'행복한''행복한'. 내 공백 라벨도 중요합니다.

ENUM 유형은 주로 정적 세트를위한 것입니다. 값, 기존 열거에 새 값을 추가하는 지원이 있습니다. 유형 및 값 이름 바꾸기 (참조Alter Type). 기존 값은 될 수 없습니다 열거 와이즈 토토에서 제거되거나 그러한 값의 정렬 순서가 제거 될 수 없습니다. 열거 와이즈 토토을 떨어 뜨리고 재창조하지 않아서 변경됩니다.

열거 값은 디스크에서 4 바이트를 차지합니다. 열거의 길이 Value의 텍스트 레이블은에 의해 제한됩니다.지명설정 설정PostgreSQL; 표준 빌드에서는이를 의미합니다 대부분의 63 바이트.

내부 열거 값에서 텍스트 레이블로의 변환은 시스템 카탈로그에 보관PG_ENUM. 이 카탈로그를 직접 쿼리하는 것은 유용 할 수 있습니다.