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

생성 토토 커뮤니티

이름

토토 커뮤니티 생성-새 데이터 토토 커뮤니티 정의

시놉시스

토토 커뮤니티 만들기이름as
    (Attribute_name data_type[, ...])

토토 커뮤니티 만들기이름(
    입력 =input_function,
    출력 =output_function[, 수신 =수신 _function]
    [, send =send_function]
    [, Internallength =Internallength| 변수]
    [, PassedByvalue]
    [, 정렬 =정렬]
    [, Storage =스토리지]
    [, default =기본값]
    [, 요소 =요소]
    [, delimiter =Delimiter]
)

설명

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

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

복합 토토 커뮤니티

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

기본 토토 커뮤니티

두 번째 형태토토 커뮤니티 만들기새 기본 토토 커뮤니티 (스칼라 유형)을 만듭니다. 매개 변수는 할 수 있습니다 위에서 설명한 것뿐만 아니라 대부분의 순서로 나타납니다. 선택 사항입니다. 둘 이상의 함수를 등록해야합니다 (사용함수 만들기) 정의하기 전에 유형. 지원 기능input_functionandoutput_function기능수신 _functionandsend_function선택 사항입니다. 일반적으로 이러한 기능은 C 또는 다른 기능으로 코딩해야합니다. 저수준 언어.

theinput_function변환 내부에 대한 유형의 외부 텍스트 표현 정의 된 연산자 및 기능에 의해 사용되는 표현 유형.output_function역 변환을 수행합니다. 입력 기능이있을 수 있습니다 유형의 하나의 주장을 취하는 것으로 선언cstringcstring, OID, Integer. 첫 번째 인수는 입력입니다 텍스트 C 문자열, 두 번째 인수는 요소 유형입니다. 케이스 이것은 배열 토토 커뮤니티이고 세 번째는입니다.TypMod14460_14718OID. 두 번째 주장 배열 토토 커뮤니티의 배열 요소 유형입니다. 출력 함수는 유형을 반환해야합니다cstring.

선택 사항수신 _function유형을 변환합니다 내부 표현에 대한 외부 바이너리 표현. 이 기능이 제공되지 않으면 유형이 참여할 수 없습니다. 이진 입력에서. 이진 표현을 선택해야합니다 합리적으로 내부 형태로 변환하는 것이 싸다. 가지고 다닐 수 있는. (예를 들어, 표준 정수 데이터 유형은 사용됩니다 외부 바이너리 표현으로서 네트워크 바이트 순서 내부 표현은 기계의 기본 바이트에 있습니다 주문.) 수신 기능은 적절한 점검을 수행해야합니다 값이 유효한지 확인합니다. 수신 기능이있을 수 있습니다 유형의 하나의 주장을 취하는 것으로 선언내부또는 토토 커뮤니티의 두 인수내부andOID. 해야합니다 데이터 토토 커뮤니티 자체의 값을 반환하십시오. (첫 번째 주장은 A에 대한 포인터StringInfo버퍼 유지 수신 된 바이트 스트링; 선택적 두 번째 인수는입니다 요소 유형이 배열 토토 커뮤니티 인 경우.) 마찬가지로 선택 과목send_function변환 내부 표현에서 외부 바이너리까지 대표. 이 함수가 제공되지 않으면 유형입니다 이진 출력에 참여할 수 없습니다. Send 함수는 가능합니다 새로운 데이터 유형에 대한 하나의 주장을 취하거나 두 번째 인수가 유형 인 두 가지 인수OID. 두 번째 인수는 다시 배열 요소입니다 배열 토토 커뮤니티에 대한 유형. 전송 함수는 유형을 반환해야합니다BYTEA.

이 시점에서 어떻게 입력과 출력 함수는 결과 또는 인수가 있다고 선언 할 수 있습니다. 새로운 유형의 새로운 유형의 유형을 만들 수 있습니다. 대답은 입력 함수가 있어야한다는 것입니다 먼저 생성 된 다음 출력 함수 (및 이진 I/O 원하는 경우 함수) 및 마지막으로 데이터 유형.PostgreSQL먼저 이름이 표시됩니다 입력 함수의 리턴 유형으로서 새로운 데이터 유형. 그것은 할 것입니다 a 만들기"쉘"유형입니다 단순히 시스템 카탈로그의 자리 표시 자 항목 및 링크 쉘 유형에 대한 입력 기능 정의. 마찬가지로 다른 기능은 (현재 이미 존재하는)에 연결됩니다. 쉘 유형. 마지막으로,토토 커뮤니티 만들기쉘 항목을 전체 토토 커뮤니티 정의로 대체하고 새로운 토토 커뮤니티을 사용할 수 있습니다.

새로운 유형의 내부 표현에 대한 세부 사항 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압축 허용, 그러나 메인 테이블에서 가치를 옮기는 것을 권장하지 않습니다. (데이터 이 저장 전략이있는 항목은 여전히 메인 테이블은 행을 적합하게 만드는 다른 방법이 없다면 메인 테이블에 우선적으로 보관됩니다확장and외부품목.)

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

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

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

배열 토토 커뮤니티

사용자 정의 기본 데이터 토토 커뮤니티이 생성 될 때마다PostgreSQL자동으로 관련 배열 토토 커뮤니티을 만듭니다. 기본 토토 커뮤니티의 이름은 밑줄로 선정되었습니다. 파서 이 이름 지정 규칙을 이해하고 요청을 번역합니다 유형의 열foo []요청으로 토토 커뮤니티_foo. 암시 적으로 만들어졌습니다 배열 토토 커뮤니티은 가변 길이이며 내장 입력을 사용하고 출력 기능array_inandArray_out.

당신은 왜가 있는지 합리적으로 물어볼 수 있습니다.요소옵션, 시스템이 올바른 경우 배열 토토 커뮤니티은 자동으로. 유용한 유일한 경우 사용요소당신이 만들 때입니다 내부적으로 발생하는 고정 길이 유형 동일한 것들의 수, 그리고 당신은 이런 것들을 허용하고 싶습니다. 그 외에도 구독으로 직접 액세스해야합니다 유형을 제공 할 작업이 무엇이든 전체. 예를 들어, type이름허용합니다 성분char액세스 할 요소 이런 식으로. 2-D포인트유형이 허용 할 수 있습니다 두 가지 구성 요소 번호에 액세스 할포인트 [0]and포인트 [1]. 이 시설은 내부 양식은 정확히 동일한 고정 길이의 시퀀스입니다 전지. 첨자 가능한 변수 길이 유형은 다음을 가져야합니다 에 의해 사용 된 일반화 된 내부 표현array_inandarray_out. 역사적 이유로 (즉, 이것은 분명히 잘못되었지만 변경하기에는 너무 늦었습니다), 고정 길이 배열의 위시 토토 커뮤니티은 하나가 아닌 0에서 시작합니다. 가변 길이 배열.

매개 변수

이름

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

Attribute_name

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

data_type

기존 데이터 유형의 이름이 복합 토토 커뮤니티.

input_function

데이터를 변환하는 함수의 이름 내부 형태로 유형의 외부 텍스트 형식.

output_function

데이터를 변환하는 함수의 이름 외부 텍스트 형식에 대한 내부 형식의 내부 양식.

수신 _function

데이터를 변환하는 함수의 이름 유형의 외부 바이너리 양식의 내부 형태로.

send_function

데이터를 변환하는 함수의 이름 외부 바이너리 형태의 내부 형태.

Internallength

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

정렬

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

스토리지

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

기본값

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

요소

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

Delimiter

값 사이에 사용될 분리기 문자 이 토토 커뮤니티으로 만든 배열.

노트

사용자 정의 유형 이름은 밑줄로 시작할 수 없습니다 성격 (_)는 62 일 수 있습니다 캐릭터 길이 (또는 일반적으로지명 된 ATALEN-2, 대신지명- 1자는 다른 문자가 허용됩니다 이름). 밑줄로 시작하는 유형 이름은 예약되어 있습니다 내부적으로 창조 된 배열 토토 커뮤니티 이름.

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

이 예제는 복합 토토 커뮤니티을 생성하고 기능 정의 :

유형 compfoo 생성 (f1 int, f2 text);
function getFoo () compfoo sets를 반환합니다
  'foo from foom에서 fooid, foome'language sql;를 선택하십시오.

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

타입 상자 생성 (
    내부 길이 = 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
);

적절한 입력 및 출력 함수를 포함한 더 많은 예제,Postgre와이즈 토토 : 문서 : 7.4 : 와이즈 토토 확장.

호환성

this토토 커뮤니티 생성명령은 APostgreSQL확장.토토 커뮤니티 생성SQL99의 진술 다소 세부적으로 다릅니다.