이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 토토 사이트 추천 생성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

생성 무지개 토토

이름

무지개 토토 생성-새 데이터 무지개 토토 정의

시놉시스

무지개 토토 만들기이름AS
    (Attribute_name data_type[, ...])

무지개 토토 만들기이름열거로
    ( '레이블' [, ...])

무지개 토토 만들기이름(
    입력 =input_function,
    출력 =output_function[, 수신 =수신 _function]
    [, send =send_function]
    [, typmod_in =type_modifier_input_function]
    [, typmod_out =type_modifier_output_function]
    [, 분석 =Analyze_Function]
    [, Internallength =Internallength| 변수]
    [, PassedByvalue]
    [, 정렬 =정렬]
    [, Storage =스토리지]
    [, 좋아요 =like_type]
    [, 카테고리 =카테고리]
    [, preferred =선호]
    [, default =기본값]
    [, 요소 =요소]
    [, delimiter =Delimiter]
))

무지개 토토 만들기이름

설명

무지개 토토 만들기새 데이터 무지개 토토을 등록합니다 현재 데이터베이스에서 사용합니다. 무지개 토토을 정의하는 사용자 소유자가됩니다.

스키마 이름이 주어지면 유형이 지정된 스키마. 그렇지 않으면 현재 스키마에서 생성됩니다. 유형 이름은 기존 유형의 이름과 구별되어야합니다. 또는 동일한 스키마의 도메인. (테이블이 관련되어 있기 때문에 데이터 유형, 유형 이름은 이름과도 구별되어야합니다. 동일한 스키마의 기존 테이블.)

복합 무지개 토토

첫 번째 형태무지개 토토 만들기복합 무지개 토토을 만듭니다. 복합 무지개 토토은 a로 지정됩니다 속성 이름 및 데이터 유형 목록. 이것은 본질적으로입니다 테이블의 행 유형과 동일하지만 사용무지개 토토 만들기실제를 생성 할 필요가 없습니다 원하는 모든 것이 유형을 정의하는 것입니다. 에이 독립형 복합 무지개 토토은 인수 또는 반환으로 유용합니다. 함수 유형.

열거 된 무지개 토토

두 번째 형태무지개 토토 생성에 설명 된대로 열거 된 (열거) 유형을 만듭니다섹션 8.7. 열거 형 유형은 목록을 가져옵니다 하나 이상의 인용 된 레이블, 각 레이블은보다 작아야합니다.지명 된 ATALEN바이트 길이 (64 인치 a 기준PostgreSQLbuild).

기본 무지개 토토

세 번째 형태무지개 토토 생성새 기본 무지개 토토 (스칼라 유형)을 만듭니다. 새로운 기반을 만들려면 유형, 당신은 슈퍼업자 여야합니다. (이 제한은 이루어집니다 잘못된 유형 정의는 혼란 스러울 수 있기 때문입니다 서버 충돌.)

매개 변수는 어떤 순서로든 나타날 수 있습니다. 위에서 설명하며 대부분 선택 사항입니다. 두 개를 등록해야합니다 또는 더 많은 기능 (사용생성 기능) 무지개 토토을 정의하기 전에. 지원 기능input_functionandoutput_function가 필요합니다 기능수신 _function, send_function, type_modifier_input_function, type_modifier_output_functionandAnalyze_Function선택 사항입니다. 일반적으로 이러한 기능은 C 또는 다른 기능으로 코딩해야합니다. 저수준 언어.

theinput_function변환 내부에 대한 무지개 토토의 외부 텍스트 표현 정의 된 연산자 및 기능에 의해 사용되는 표현 무지개 토토.output_function역 변환을 수행합니다. 입력 함수가 될 수 있습니다 무지개 토토의 하나의 주장을 취하는 것으로 선언cstringcstring, OID, Integer. 첫 번째 인수는 입력입니다 텍스트 C 문자열, 두 번째 인수는 유형의 OID입니다. (배열 무지개 토토을 제외하고 대신 요소를 수신합니다 타입의 OID), 세 번째는입니다.TypMod15854_16467cstring. 출력 기능은 NULL에 대해 호출되지 않습니다 값.

선택 사항수신 _function무지개 토토을 변환합니다 내부 표현에 대한 외부 바이너리 표현. 이 기능이 제공되지 않으면 무지개 토토이 참여할 수 없습니다. 이진 입력에서. 이진 표현을 선택해야합니다 합리적으로 내부 형태로 변환하는 것이 싸다. 가지고 다닐 수 있는. (예를 들어, 표준 정수 데이터 무지개 토토은 사용됩니다 외부 바이너리 표현으로서 네트워크 바이트 순서 내부 표현은 기계의 기본 바이트에 있습니다 주문.) 수신 기능은 적절한 점검을 수행해야합니다 값이 유효한지 확인합니다. 수신 기능은 될 수 있습니다 무지개 토토의 하나의 주장을 취하는 것으로 선언내부내부, OID, Integer. 첫 번째 인수는 포인터입니다StringInfo버퍼를 잡고 있습니다 수신 된 바이트 스트링; 선택적 인수는 동일합니다 텍스트 입력 함수의 경우. 수신 함수는 a를 반환해야합니다 데이터 유형 자체의 값. 일반적으로 수신 기능 엄격하게 선언되어야한다. 그렇지 않으면 호출됩니다 NULL 입력 값을 읽을 때 NULL 첫 번째 매개 변수입니다. 그만큼 이 경우 기능이 증가하지 않는 한 여전히 NULL을 반환해야합니다. 오류. (이 사례는 주로 도메인 수신을 지원하기위한 것입니다 널 입력을 거부해야 할 함수.) 마찬가지로, 마찬가지로, 선택 사항send_function내부 표현에서 외부로 변환합니다 이진 표현. 이 함수가 제공되지 않으면 유형은 이진 출력에 참여할 수 없습니다. 전송 함수 새로운 데이터 유형에 대한 하나의 인수를 취하는 것으로 선언해야합니다. 전송 함수는 유형을 반환해야합니다BYTEA. 널 값에 대해서는 기능이 호출되지 않습니다.

이 시점에서 입력이 어떻게 궁금해하고 출력 함수는 결과 또는 인수가 있다고 선언 할 수 있습니다. 새로운 무지개 토토의 새로운 무지개 토토의 무지개 토토을 만들 수 있습니다. 대답은 무지개 토토이 먼저해야한다는 것입니다 A로 정의쉘 타입, a 이름과 이름을 제외하고 속성이없는 자리 표시 자 유형 소유자. 이것은 명령을 발행하여 수행됩니다무지개 토토 만들기이름19055_19173무지개 토토 만들기가득한 정의는 쉘 항목을 완전하고 유효한 무지개 토토으로 대체합니다. 정의, 그 후 새로운 무지개 토토은 정상적으로 사용할 수 있습니다.

선택 사항type_modifier_input_functionandtype_modifier_output_function무지개 토토이 수정자를 지원하는 경우 필요합니다. 과 같은 무지개 토토 선언에 첨부 된 제약 조건char (5)또는숫자 (30,2). PostgreSQL사용자 정의 유형을 허용합니다 하나 이상의 간단한 상수 또는 식별자를 수정 자로 사용하십시오. 그러나이 정보는 시스템 내 스토리지를위한 단일 비 음성 정수 값 카탈로그. 그만큼type_modifier_input_function가 통과되었습니다 a 형태의 선언 된 수정 자 (들)cstring배열. 값을 확인해야합니다 유효성 (잘못된 경우 오류를 던지기). 수정, 단일 비 음성 반환정수열로 저장 될 값"TypMod". 무지개 토토 수정자가됩니다 무지개 토토에 A가 없으면 거부 됨type_modifier_input_function. 그만큼type_modifier_output_function내부 정수 타자 값을 올바른 것으로 변환합니다. 사용자 표시를위한 양식. 반환해야합니다cstring값은 정확한 문자열입니다 유형 이름; 예를 들어숫자's 함수가 반환 될 수 있습니다(30,2). 그것은 생략 허용type_modifier_output_functionCASE 기본 표시 형식은 저장된 타자입니다. 괄호로 둘러싸인 정수 값.

선택 사항Analyze_Function무지개 토토 특유의 수행 데이터 무지개 토토의 열에 대한 통계 수집. 기본적으로분석수집을 시도합니다 무지개 토토을 사용한 통계"Equals"and"덜"운영자가 있다면 유형의 기본 B- 트리 연산자 클래스입니다. 비 스칼라의 경우 유형이 동작은 부적합 할 수 있으므로 사용자 정의 분석 기능을 지정하여 재정의합니다. 그만큼 분석 기능은 단일 논증으로 선언되어야합니다. 유형내부, 그리고 a 반환부울결과. 분석을위한 상세한 API 함수는에 나타납니다.SRC/include/commands/Vacuum.h.

새로운 유형의 내부 표현에 대한 세부 사항 I/O 함수 및 기타 기능에만 알려져 있습니다. 유형으로 작업하기 위해 생성하면 몇 가지 속성이 있습니다. 선언 해야하는 내부 표현PostgreSQL. 이것들 중 가장 중요합니다 이다Internallength. 기본 데이터 무지개 토토은 고정 길이 일 수 있으며,이 경우Internallength긍정적 인 정수입니다 변수 길이, 설정으로 표시Internallengthto변수. (내부적으로 이것은 다음으로 표시됩니다 환경Typlen~ -1.) 내부 모든 가변 길이 유형의 표현은 a로 시작해야합니다 이 값의 총 길이를 제공하는 4 바이트 정수 유형.

옵션 플래그PassedByvalue이 데이터 유형의 값이 값으로 전달되었음을 나타냅니다. 참조보다는. 당신은 누구의 가치 유형을 통과 할 수 없습니다 내부 표현은의 크기보다 큽니다.Datum타입 (대부분의 기계의 4 바이트, 8 몇 바이트).

the정렬매개 변수 데이터 유형에 필요한 스토리지 정렬을 지정합니다. 그만큼 허용 값은 1, 2, 4 또는 8 바이트에 정렬되는 것과 동일합니다. 경계. 가변 길이 유형에는 an이 있어야합니다 반드시 an을 포함하기 때문에 4 개 이상의 정렬int4첫 번째 구성 요소로

the스토리지매개 변수가 허용됩니다 가변 길이 데이터 유형에 대한 스토리지 전략 선택. (오직일반허용됩니다 고정 길이 무지개 토토.)일반지정 무지개 토토의 데이터는 항상 인라인으로 저장되며 압축.확장이를 지정합니다 시스템은 먼저 긴 데이터 값을 압축하려고 시도하고 아직도 메인 테이블 행에서 값을 움직일 것입니다. 긴.외부값을 허용합니다 메인 테이블 밖으로 이동했지만 시스템은 압축하십시오.main압축 허용, 그러나 메인 테이블에서 가치를 옮기는 것을 권장하지 않습니다. (데이터 이 저장 전략이있는 항목은 여전히 행을 적합하게 만드는 다른 방법이 없다면 메인 테이블이지만 그들은 메인 테이블에 우선적으로 보관 될 것입니다확장외부품목.)

thelike_type매개 변수 기본을 지정하기위한 대체 방법을 제공합니다 데이터 유형의 표현 속성 : 일부에서 복사 기존 유형. 의 값Internallength, PassedByvalue, 정렬스토리지명명 된 유형에서 복사됩니다. (일반적으로 바람직하지는 않지만 일부를 무시할 수 있습니다 이 값 중를 지정하여좋아요절.)이 방식으로 표현을 지정합니다 낮은 수준의 구현 일 때 특히 유용합니다 새로운 무지개 토토"piggybacks"기존에서 어떤 방식으로 입력하십시오.

the카테고리and선호매개 변수를 사용하여 도움을 줄 수 있습니다 어떤 암시 적 캐스트가 모호하게 적용되는지 제어하십시오 상황. 각 데이터 유형은 단일 ASCII 문자 및 각 유형은입니다."선호"또는 해당 카테고리 내에 있지 않습니다. 그만큼 Parser는 선호하는 유형에 캐스팅하는 것을 선호합니다 (그러나 동일한 범주 내의 다른 유형)이 규칙이 도움이되는 경우 과부하 된 기능 또는 연산자를 해결할 때. 자세한 내용 세부 사항 참조토토 베이 : 문서 : 8.4 : 변환 유형. 유형 다른 유형에 대한 암시 적 캐스트가없는 것은 다음과 같습니다. 기본값으로 이러한 설정을 떠나기에 충분합니다. 하지만, 암시 적 캐스트가있는 관련 유형 그룹의 경우 종종 그들 모두를 카테고리에 속하는 것으로 표시하고 하나 또는 둘을 선택하십시오"대부분 일반적인"범주 내에서 선호되는 유형. 그만큼카테고리매개 변수입니다 사용자 정의 유형을 An에 추가 할 때 특히 유용합니다 숫자 또는 문자열과 같은 기존 내장 카테고리 유형. 그러나 새로운 것을 만들 수도 있습니다 완전히 사용자 정의 된 유형 범주. ASCII를 선택하십시오 그런 이름을 지정하는 상류 문자가 아닌 다른 캐릭터 범주.

사용자가 원하는 경우 기본값을 지정할 수 있습니다. 데이터 유형의 열이 널 값. 에 기본값을 지정합니다.기본값키 단어. (그러한 기본값은 될 수 있습니다 명시 적으로 우선기본값특정 열에 첨부 된 조항)

유형이 배열임을 나타내려면 를 사용하는 배열 요소요소키 단어. 예를 들어, 4 바이트 정수 배열을 정의합니다 (int4), 지정27540_27556. 배열 무지개 토토에 대한 자세한 내용 아래에 나타납니다.

이 유형의 배열의 외부 표현,Delimiter는 특정로 설정할 수 있습니다 성격. 기본 구분 기호는 쉼표 (입니다.,). 구분자는 관련되어 있습니다 배열 무지개 토토 자체가 아닌 배열 요소 유형.

배열 무지개 토토

사용자 정의 무지개 토토이 생성 될 때마다PostgreSQL자동으로 an 이름이 기본 무지개 토토으로 구성된 관련 배열 무지개 토토 이름은 밑줄로 선정하고 필요한 경우 잘 렸습니다 그것을 유지하려면지명바이트 긴. (생성 된 이름이 기존 유형과 충돌하는 경우 이름, 프로세스는 비 청구 이름이 될 때까지 반복됩니다. 이 암시 적으로 만들어진 배열 무지개 토토은 가변 길이입니다 내장 입력 및 출력 기능을 사용array_inandarray_out. 배열 무지개 토토은 요소 유형의 소유자의 변경 사항을 추적합니다. 또는 스키마, 요소 유형이있는 경우 삭제됩니다.

왜가 있는지 합리적으로 물어볼 수 있습니다요소옵션, 시스템이 올바른 경우 배열 무지개 토토은 자동으로. 유용한 유일한 경우 사용요소당신이 만들 때입니다 내부적으로 발생하는 고정 길이 유형 동일한 것들의 수, 그리고 당신은 이런 것들을 허용하고 싶습니다. 그 외에도 구독으로 직접 액세스해야합니다 유형을 제공 할 작업이 무엇이든 전체. 예를 들어, type포인트IS 두 개의 부동 소수점 숫자로 표시됩니다 액세스하려면포인트 [0]and포인트 [1]. 이 시설 만 가능합니다 내부 양식이 정확히 동일한 고정 길이 필드의 시퀀스. 구독 가능 가변 길이 유형에는 일반화 된 내부가 있어야합니다 에 의해 사용 된 표현array_inandArray_out. 역사적 이유로 (즉, 이것은 분명히 잘못되었지만 변경하기에는 너무 늦었습니다. IT), 고정 길이 배열 무지개 토토의 위시가 0부터 시작됩니다. 가변 길이 배열과 같은 하나보다는 대신.

매개 변수

이름

유형의 이름 (선택적으로 스키마 자격) 생성.

Attribute_Name

복합재에 대한 속성 (열)의 이름 유형.

data_type

기존 데이터 유형의 이름이 복합 무지개 토토.

레이블

텍스트 레이블을 나타내는 문자열 문자 열거 유형의 하나의 값과 관련이 있습니다.

input_function

데이터를 내부 형태로 유형의 외부 텍스트 형식.

output_function

데이터를 외부 텍스트 형식에 대한 내부 형식의 내부 양식.

수신 _function

데이터를 유형의 외부 바이너리 양식의 내부 형태로.

send_function

데이터를 외부 바이너리 형태의 내부 형태.

type_modifier_input_function

배열을 변환하는 함수의 이름 내부 형태로 유형의 수정 자.

type_modifier_output_function

내부 양식을 변환하는 함수의 이름 유형의 수정 자의 외부 텍스트 형식으로.

Analyze_Function

통계를 수행하는 함수의 이름 데이터 유형 분석.

Internallength

바이트의 길이를 지정하는 숫자 상수 새로운 유형의 내부 표현. 기본값 가정은 가변 길이라고 가정합니다.

정렬

데이터 유형의 스토리지 정렬 요구 사항. 만약에 지정되어 있어야합니다.char, int2, int4또는더블; 기본값은int4.

스토리지

데이터 유형의 스토리지 전략. 지정된 경우 해야 됨일반, 외부, 확장, 또는Main; 기본값은일반.

like_type

새 유형이하는 기존 데이터 유형의 이름 와 같은 표현을 가지고 있습니다. 의 값Internallength, PassedByvalue, 정렬스토리지해당 무지개 토토에서 복사되었습니다. 다른 곳에서 명시적인 사양에 의해 상체되지 않는 한 이것무지개 토토 생성명령.

카테고리

이에 대한 카테고리 코드 (단일 ASCII 문자) 유형. 기본값은'U'for"사용자 정의 무지개 토토". 다른 표준 카테고리 코드는에서 찾을 수 있습니다.테이블 44-43. 다른 ASCII 문자를 선택할 수도 있습니다 사용자 정의 카테고리 생성 주문.

선호

이 유형이 유형 내에서 선호되는 유형 인 경우 True 카테고리, else false. 기본값은 False입니다. 매우 조심하십시오 기존 유형 내에서 새로운 선호 유형을 만드는 것에 대해 이로 인해 놀라운 변화가 발생할 수 있습니다 행동.

기본값

데이터 유형의 기본값. 이것이 생략되면 기본값은 null입니다.

요소

생성중인 유형은 배열입니다. 이것은 그것을 지정합니다 배열 요소의 유형.

Delimiter

값 사이에 사용될 분리기 문자 이 무지개 토토으로 만든 배열.

노트

데이터 유형 사용에 한 번 제한이 없기 때문에 그것은 만들어졌으며, 기본 무지개 토토을 만드는 것은 부여하기에 자극적입니다. 유형에 언급 된 기능에 대한 공개 실행 권한 정의. 이것은 일반적으로 종류의 문제가 아닙니다. 유형 정의에 유용한 함수. 하지만 당신은 할 수도 있습니다 유형을 디자인하기 전에 두 번 생각하고 싶습니다. 필요하다"비밀"정보 외부 양식으로 또는 전환하는 동안 사용됩니다.

PostgreSQL버전 8.3, 생성 된 배열 무지개 토토의 이름은 항상 정확히 하나의 밑줄 문자가있는 요소 유형의 이름 (_) Prepended. (따라서 유형 이름이있었습니다 길이가 다른 이름보다 적은 문자로 제한됩니다.) 이것은 여전히 ​​그렇지 않지만 배열 무지개 토토 이름은 최대 길이 이름 또는 충돌의 경우에 따라 다릅니다. 밑줄로 시작하는 사용자 유형 이름. 코드를 작성합니다 따라서이 협약에 따라 다르고 있습니다. 대신 사용PG_TYPE.typarray관련 배열 무지개 토토을 찾으려면 주어진 유형으로.

유형 및 테이블 이름을 사용하지 않는 것이 좋습니다. 밑줄로 시작하십시오. 서버가 생성되는 동안 사용자가주는 이름과의 충돌을 피하기위한 배열 무지개 토토 이름, 거기 특히 오래된 클라이언트 소프트웨어에서는 여전히 혼란의 위험이 있습니다. 그것은 항상 밑줄로 시작하는 유형 이름을 가정 할 수 있습니다. 배열 대표.

PostgreSQL버전 8.2, 구문무지개 토토 생성이름존재하지 않았습니다. 창조 방법 새로운 기본 무지개 토토은 먼저 입력 기능을 만드는 것이 었습니다. 이것에서 접근하다,PostgreSQL먼저 입력의 리턴 유형으로 새 데이터 유형의 이름을 확인하십시오. 기능. 이 상황에서 쉘 유형은 암시 적으로 생성됩니다. 그리고 나머지 정의에서 참조 할 수 있습니다. I/O 함수. 이 접근법은 여전히 ​​작동하지만 더 이상 사용되지 않습니다 미래의 릴리스에서는 허용되지 않을 수 있습니다. 또한 피하기 위해 실수로 쉘 유형으로 카탈로그를 혼란스럽게 기능 정의에서 간단한 오타의 쉘 유형은 입력 함수가 C로 작성 될 때 이런 식으로 만들어집니다.

inPostgreSQL이전 버전 7.3, 쉘 유형을 전혀하지 않는 것이 관례였습니다. functions의 전달 참조를 유형 이름으로 대체 자리 표시 자 유사 형opaque. 그만큼cstring인수와 결과도 필요했습니다 로 선언 됨opaque7.3 이전. 에게 이전 덤프 파일의로드 지원생성 무지개 토토사용하여 선언 된 I/O 기능을 수락합니다opaque그러나 통지를 발행하고 변경합니다. 올바른 무지개 토토을 사용하려는 기능 선언.

이 예제는 복합 무지개 토토을 생성하고 기능 정의 :

유형 compfoo 생성 (f1 int, f2 text);

function getfoo () compfoo sets를 $$로 반환합니다
    foo에서 fooid, foom을 선택하십시오
$$ 언어 SQL;

이 예제는 열거 된 무지개 토토을 생성하고 테이블에 사용합니다. 정의:

Enum ( 'New', 'Open', 'close'로 Bug_status 무지개 토토 생성;

테이블 버그 생성 (
    ID 시리얼,
    설명 텍스트,
    상태 버그 _status
);

이 예제는 기본 데이터 무지개 토토을 만듭니다Box그런 다음 테이블 정의에서 유형을 사용합니다.

유형 상자 생성;

기능 작성 my_box_in_function (cstring) 반환 상자는 ...;
기능 작성 my_box_out_function (box) cstring을 ...;

유형 상자 생성 (
    내부 길이 = 16,
    입력 = my_box_in_function,
    output = my_box_out_function
);

테이블 작성 mybox (
    ID 정수,
    설명 상자
);

의 내부 구조 인 경우Box4 개의 배열float4요소, 우리는 할 수 있습니다 대신 사용 :

타입 상자 생성 (
    내부 길이 = 16,
    입력 = my_box_in_function,
    output = my_box_out_function,
    요소 = float4
);

이것은 박스 값의 구성 요소 번호가 구독으로 액세스. 그렇지 않으면 유형이 동일하게 동작합니다 전에.

이 예제는 큰 객체 무지개 토토을 생성하고 테이블 정의 :

타입 bigobj 만들기 (
    입력 = lo_filein, 출력 = lo_fileout,
    내부 길이 = 변수
);
테이블 생성 big_objs (
    ID 정수,
    obj bigobj
);

적절한 입력 및 출력 함수를 포함한 더 많은 예제,PostgreSQL : 문서 : 8.4 : 사용자 정의 사설 토토.

호환성

this무지개 토토 생성명령은 APostgreSQL확장.무지개 토토 만들기진술SQL오히려 표준 세부적으로 다릅니다.