>47_word_end<>48_word_end<

>119_word_end<9. 객체 식별자 유형#

>172_word_end<>173_word_end<>174_word_end<>175_word_end<>176_word_end<>175_word_end<>178_word_end<>179_word_end<>180_word_end<. 표 >117_word_end<6>183_word_end<

>185_word_end<>175_word_end<>187_word_end<

>185_word_end<>175_word_end<유형 자체는 비교 이상으로 작업이 거의 없습니다. 그러나 정수로 캐스트 한 >158_word_end< 표준 정수 연산자를 사용하여 조작 할 수 있습니다. (이렇게하면 서명 된 대용자가 디자인되지 않은 혼란을 조심하십시오.)

>175_word_end< 별칭 유형에는 특수 입력 및 출력 루틴을 제외하고는 자체 작업이 없습니다. 이 루틴은 유형의 원시 숫자 값보다는 시스템 객체에 대한 상징적 >232_word_end<을 수락하고 표시 할 수 있습니다>175_word_end<사용합니다. 별칭 유형은 객체에 대한 >175_word_end< 값을 >290_word_end<화 할 수 있습니다. 예를 들어,를 검사하려면>196_word_end<>197_word_end<>198_word_end<, 하나는 >158_word_end<을 쓸 수 있습니다 :

선택 *에서 >196_word_end<에서 attrelid = '>198_word_end<':: regclass;

>203_word_end<

>196_word_end<에서 * 선택 *
  여기서 attrelid = (>256_word_end<에서 Oid를 선택하여 relname = '>198_word_end<');

그 자체로는 그렇게 나쁘게 보이지는 않지만 여전히 지나치게 >290_word_end<화되었습니다. >232_word_end<이 여러 개의 테이블이있는 경우 올바른 >175_word_end<를 선택하려면 훨씬 더 복잡한 하위 선택이 필요합니다.>198_word_end<>209_word_end<>179_word_end>211_word_end<>213_word_end<자동으로. 마찬가지로, 테이블의 >175_word_end<를 캐스팅>179_word_end>217_word_end<

표 >117_word_end<6. 객체 식별자 유형

152_word_end<> 152_word_end<> <>185_word_end 185_word_end
>232_word_end< >234_word_end< >236_word_end< >238_word_end<
>175_word_end< >246_word_end< >248_word_end< 564182
>179_word_end >256_word_end< 관계 >232_word_end< >260_word_end<
>179_word_end >266_word_end< >268_word_end< >270_word_end<
>179_word_end >276_word_end< >278_word_end< >280_word_end<
>179_word_end >286_word_end< >288_word_end< >290_word_end<
>294_word_end< >296_word_end< 네임 스페이스 >232_word_end< >300_word_end<
>179_word_end >306_word_end< 운영자 >232_word_end< +
>179_word_end >306_word_end< >318_word_end< >320_word_end<or-(없음, 정수)
>179_word_end PG_PROC 기능 >232_word_end< Sum
>179_word_end PG_PROC 인수 배트맨 토토이있는 함수 sum (int4)
Resprole pg_authid 역할 >232_word_end< Smi>185_word_end
>179_word_end >260_word_end< 데이터 유형 >232_word_end< Integer

네임 스페이스로 그룹화 된 객체의 모든 >175_word_end< 별칭 유형은 스키마 자격 >232_word_end<을 수락하고 자격을 갖추지 않고 현재 검색 경로에서 객체를 찾을 수없는 경우 출력에 스키마 자격 >232_word_end<을 표시합니다. 예를 들어,myschema.>198_word_end<허용 가능한 입력에 대한 입력>179_word_end(이 테이블이있는 경우). 그 값은로 출력 될 수 있습니다.myschema.>198_word_end<또는 그냥>198_word_end<, 현재 검색 경로에 따라. 그만큼>179_word_endand>179_word_end별칭 유형은 고유 한 입력 >232_word_end< 만 (과부하되지 않음) 만 사용하므로 사용이 제한되어 있습니다. 대부분의 용도>179_word_end또는>179_word_end더 적합합니다. 을 위한>179_word_end, 단독 운영자는 서면으로 식별됩니다없음사용하지 않은 피연산자.

이러한 유형의 입력 함수는 토큰 사이의 공백을 허용하며, 이중 인용문을 제외하고는 상류 문자를 소문자로 접습니다. 이는 구문 규칙이 객체 >232_word_end<이 SQL로 작성되는 방식과 유사하게 만들기 위해 수행됩니다. 반대로, 출력 함수는 출력을 유효한 SQL 식별자로 만들기 위해 필요한 경우 이중 따옴표를 사용합니다. 예를 들어, >232_word_end<이 지정된 함수의 >175_word_end<foo(대문자 포함f) 두 개의 정수 논증을 취하는 것은로 입력 할 수 있습니다.' "foo"(int, integer) ':: regprocedure. 출력은"foo"(정수, 정수). 함수 >232_word_end<과 인수 유형 >232_word_end<도 스키마 자격을 갖추게 될 수 있습니다.

많은 내장>173_word_end<함수는 테이블 또는 다른 종류의 데이터베이스 객체의 >175_word_end<를 수락하고 편의를 위해 취향으로 선언됩니다>179_word_end(또는 적절한 >175_word_end< 별칭 유형). 이것은 당신이 객체의 >175_word_end<를 손으로 볼 필요가 없지만 문자열 문자로 >232_word_end<을 입력 할 수 있음을 의미합니다. 예를 들어,NextVal (regclass)함수는 시퀀스 관계의 >175_word_end<를 취하므로 >158_word_end<과 같이 부를 수 있습니다.

NextVal ( 'foo')시퀀스에서 작동fooNextVal ( 'foo')위와 동일NextVal ( ' "foo"')시퀀스에서 작동fooNextVal ( 'myschema.foo')운영myschema.fooNextVal ( ' "myschema".foo')위와 동일NextVal ( 'foo')검색 경로 검색foo

Note

당신이 그러한 함수의 논증을 끊임없는 문자열 문자열과 같은 인수를 작성할 때, 그것은 배트맨 토토의 상수가됩니다>179_word_end(또는 적절한 유형). 이것은 실제로 >175_word_end< 일 뿐이므로 나중에 >232_word_end<을 바꾸는 객체를 추적합니다. 나중에 변경, 스키마 재 할당 등.조기 바인딩행동은 일반적으로 열 기본값 및보기에서 객체 >234_word_end<에 바람직합니다. 하지만 때로는 원할 수도 있습니다늦은 바인딩객체 >234_word_end<가 실행 시간에 해결되는 곳. 늦은 바인딩 행동을 얻으려면 상수가 A로 저장되도록 강제로텍스트대신 상수>179_word_end:

NextVal ( 'foo':: text)foo런타임을 찾아 보았습니다

>185_word_end<to_regclass ()함수와 형제 자매를 사용하여 런타임 조회를 수행 할 수도 있습니다. 보다표 9.72.

사용의 또 다른 실용적인 예>179_word_end|Information_Schemaviews, 그러한 >175_word_end<를 직접 공급하지 않습니다. 예를 들어를 호출하기를 원할 수도 있습니다.pg_relation_size ()함수. 테이블 >175_word_end<가 필요합니다. 위의 규칙을 고려하면 올바른 방법은입니다.

table_schema, table_name, table_schema,
       pg_relation_size ((QUOTE_INDEN (table_schema) || '.'||
                         quote_ident (table_name)) :: regclass)
information_schema.tables에서
어디 ...

quote_ident ()함수는 필요한 경우 배트맨 토토를 두 배로 인용해야합니다. 겉보기 쉬운

SELECT pg_relation_size(table_name)
information_schema.tables에서
어디 ...

is권장되지 않음, 검색 경로 외부에 있거나 인용 해야하는 >232_word_end<이있는 테이블에 실패하기 때문에..

대부분의 >175_word_end< 별칭 유형의 추가 속성은 종속성을 생성하는 것입니다. 이러한 유형 중 하나의 상수가 저장된 표현식 (예 : 열 기본 표현식 또는보기)에 나타나면 >234_word_end< 된 객체에 대한 종속성을 만듭니다. 예를 들어, 열에 기본 표현식이있는 경우NextVal ( 'my_seq':: regclass), >173_word_end<기본 표현식이 시퀀스에 따라 다르다는 것을 이해합니다.my_seq, 따라서 기본 표현식을 먼저 제거하지 않고도 시스템이 시퀀스를 삭제하지 못하게합니다. 의 대안NextVal ( 'my_seq':: text)의존성을 생성하지 않습니다. (Resprole은이 속성에 대한 예외입니다. 이 배트맨 토토의 상수는 저장된 표현식에서 허용되지 않습니다.)

시스템에서 사용하는 다른 식별자 배트맨 토토은xid또는 거래 (약어xact) 식별자. 이것은 시스템 열의 데이터 배트맨 토토입니다xminxmax. 거래 배트맨 토토는 32 비트 수량입니다. 어떤 상황에서는 64 비트 변형XID8사용됩니다. 같지 않은xid값,XID8값은 엄격하게 단조롭게 증가하고 데이터베이스 클러스터의 수명에서 재사용 할 수 없습니다. 보다섹션 74.1자세한 내용은

시스템에서 사용하는 세 번째 식별자 배트맨 토토은CID또는 명령 식별자. 이것은 시스템 열의 데이터 유형입니다cminandcmax. 명령 배트맨 토토도 32 비트 수량입니다.

시스템에서 사용하는 최종 식별자 배트맨 토토은TID또는 튜플 식별자 (행 식별자). 이것은 시스템 열의 데이터 유형입니다CTID. 튜플 ID는 테이블 내의 행의 물리적 위치를 식별하는 쌍 (블록 번호, 블록 내 튜플 인덱스)입니다.

(시스템 열은 자세히 >236_word_end<되어PostgreSQL : 문서 : 16 : 5.5. 무지개 토토 열.)

수정 제출

문서에 >213_word_end<이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 >236_word_end<이 필요합니다. 사용이 양식문서 문제를보고하려면