개체 식별자(OID)는 다음에서 내부적으로 사용됩니다.PostgreSQL다양한 시스템 테이블의 기본 키로 사용됩니다. 범퍼카 토토oid객체 식별자를 나타냅니다. 에 대한 여러 별칭 범퍼카 토토도 있습니다.oid, 각각 이름이 지정됨reg. 표 8.26개요를 보여줍니다.뭔가
그oid범퍼카 토토은 현재 부호 없는 4바이트 정수로 구현됩니다. 따라서 대규모 데이터베이스 또는 대규모 개별 테이블에서 데이터베이스 전체의 고유성을 제공할 만큼 크지 않습니다.
그oid범퍼카 토토 자체에는 비교할 수 없는 작업이 거의 없습니다. 그러나 정수로 변환한 다음 표준 정수 연산자를 사용하여 조작할 수 있습니다. (이렇게 하면 서명된 대 서명되지 않은 혼동이 발생할 수 있으니 주의하세요.)
OID 별칭 범퍼카 토토에는 특수한 입력 및 출력 루틴을 제외하고 자체 작업이 없습니다. 이러한 루틴은 다음을 입력하는 원시 숫자 값 대신 시스템 개체에 대한 기호 이름을 허용하고 표시할 수 있습니다.oid사용하겠습니다. 별칭 범퍼카 토토을 사용하면 개체에 대한 OID 값을 간단하게 조회할 수 있습니다. 예를 들어, 다음을 조사하려면pg_attribute테이블과 관련된 행마이테이블, 다음과 같이 쓸 수 있습니다.
SELECT * FROM pg_attribute WHERE attrelid = 'mytable'::regclass;
보다는:
SELECT * FROM pg_attribute WHERE attrelid = (pg_class WHERE relname = 'mytable'에서 oid 선택);
그 자체로는 그렇게 나쁘지는 않지만 여전히 지나치게 단순화되어 있습니다. 이름이 지정된 테이블이 여러 개 있는 경우 올바른 OID를 선택하려면 훨씬 더 복잡한 하위 선택이 필요합니다.마이테이블다른 스키마에 있습니다.regclass입력 변환기는 스키마 경로 설정에 따라 테이블 조회를 처리하므로 다음을 수행합니다.“옳은 일”자동으로. 마찬가지로 테이블의 OID를 다음으로 캐스팅합니다.regclass숫자 OID를 상징적으로 표시하는 데 유용합니다.
표 8.26. 객체 식별자 범퍼카 토토
| 이름 | 참고자료 | 설명 | 값 예 | 
|---|---|---|---|
oid | 
            모든 | 숫자 개체 식별자 | 564182 | 
          
regclass | 
            pg_class | 
            관계 이름 | pg_type | 
          
regcollation | 
            pg_collation | 
            콜레이션 이름 | "POSIX" | 
          
regconfig | 
            pg_ts_config | 
            텍스트 검색 구성 | 영어 | 
          
regdatabase | 
            pg_database | 
            데이터베이스 이름 | 템플릿1 | 
          
regdictionary | 
            pg_ts_dict | 
            텍스트 검색 사전 | 간단한 | 
          
regnamespace | 
            pg_namespace | 
            네임스페이스 이름 | pg_catalog | 
          
regoper | 
            pg_operator | 
            운영자 이름 | + | 
          
regoperator | 
            pg_operator | 
            인수 범퍼카 토토이 있는 연산자 | *(정수,정수)또는-(NONE,정수) | 
          
regproc | 
            pg_proc | 
            함수 이름 | 합 | 
          
regprocedure | 
            pg_proc | 
            인수 범퍼카 토토이 있는 함수 | 합계(int4) | 
          
regrole | 
            pg_authid | 
            역할 이름 | 대장장이 | 
          
regtype | 
            pg_type | 
            데이터 범퍼카 토토 이름 | 정수 | 
          
네임스페이스별로 그룹화된 개체에 대한 모든 OID 별칭 범퍼카 토토은 스키마 수식 이름을 허용하며 개체가 정규화되지 않은 채 현재 검색 경로에서 발견되지 않는 경우 출력에 스키마 수식 이름을 표시합니다. 예를 들어,myschema.mytable다음에 대한 입력이 허용됩니다.regclass(그런 테이블이 있는 경우). 해당 값은 다음과 같이 출력될 수 있습니다.myschema.mytable또는 그냥마이테이블, 현재 검색 경로에 따라 다름.regproc그리고regoper별명 범퍼카 토토은 고유한(오버로드되지 않은) 입력 이름만 허용하므로 사용이 제한됩니다. 대부분의 용도에 사용regprocedure또는regoperator더 적합합니다. 에 대한regoperator, 단항 연산자는 쓰기로 식별됩니다.없음사용되지 않은 피연산자용.
이러한 범퍼카 토토의 입력 기능은 토큰 사이에 공백을 허용하고 큰따옴표 내를 제외하고 대문자를 소문자로 접습니다. 이는 객체 이름이 SQL에 기록되는 방식과 유사한 구문 규칙을 만들기 위해 수행됩니다. 반대로, 출력 함수는 출력이 유효한 SQL 식별자가 되도록 만드는 데 필요한 경우 큰따옴표를 사용합니다. 예를 들어,라는 함수의 OID푸(대문자 포함F) 두 개의 정수 인수를 사용하면 다음과 같이 입력될 수 있습니다.' "Foo"(정수, 정수) '::regprocedure. 출력은 다음과 같습니다."Foo"(정수,정수). 함수 이름과 인수 범퍼카 토토 이름 모두 스키마로 한정될 수도 있습니다.
많은 내장포스트그레SQL함수는 테이블의 OID 또는 다른 종류의 데이터베이스 개체를 허용하며 편의상 take로 선언됩니다.regclass(또는 적절한 OID 별칭 범퍼카 토토). 즉, 개체의 OID를 직접 찾을 필요 없이 이름을 문자열 리터럴로 입력하면 됩니다. 예를 들어,nextval(regclass)함수는 시퀀스 관계의 OID를 취하므로 다음과 같이 호출할 수 있습니다:
nextval('foo')순서대로 작동foonextval('FOO')위와 동일nextval('"Foo"')순차적으로 작동푸nextval('myschema.foo')작동myschema.foonextval('"myschema".foo')위와 동일nextval('foo')검색 경로 검색foo
  당신이 장식되지 않은 리터럴 문자열과 같은 함수의 인수를 작성할 때, 그것은 범퍼카 토토의 상수가 됩니다regclass(또는 적절한 범퍼카 토토). 이는 실제로 OID일 뿐이므로 나중에 이름 변경, 스키마 재할당 등에도 불구하고 원래 식별된 개체를 추적합니다.“초기 바인딩”동작은 일반적으로 열 기본값 및 보기의 객체 참조에 바람직합니다. 하지만 때로는 원할 수도 있습니다.“늦은 바인딩”객체 참조는 런타임 시 해결됩니다. 지연 바인딩 동작을 얻으려면 상수를 강제로텍스트대신 상수regclass:
nextval('foo'::text)foo런타임에 조회됩니다.
    그to_regclass()함수와 그 형제 함수를 사용하여 런타임 조회를 수행할 수도 있습니다. 참조표 9.76.
사용의 또 다른 실제 예regclass에 나열된 테이블의 OID를 조회하는 것입니다.information_schema뷰는 이러한 OID를 직접 제공하지 않습니다. 예를 들어 다음과 같이 호출할 수 있습니다.pg_relation_size()함수, 테이블 OID가 필요합니다. 위의 규칙을 고려하여 올바른 방법은 다음과 같습니다.
SELECT 테이블_스키마, 테이블_이름,
       pg_relation_size((quote_ident(table_schema) || '.' ||
                         quote_ident(테이블_이름))::regclass)
information_schema.tables에서
어디서 ...
  그quote_ident()함수는 필요한 경우 식별자를 큰따옴표로 처리합니다. 겉으로는 더 쉬워 보이는데
SELECT pg_relation_size(테이블_이름) information_schema.tables에서 어디서 ...
is권장하지 않음, 검색 경로 외부에 있거나 인용이 필요한 이름이 있는 테이블에서는 실패하기 때문입니다.
대부분의 OID 별칭 범퍼카 토토의 추가 속성은 종속성 생성입니다. 이러한 범퍼카 토토 중 하나의 상수가 저장된 식(예: 열 기본 식 또는 뷰)에 나타나는 경우 참조된 개체에 대한 종속성이 생성됩니다. 예를 들어 열에 기본 표현식이 있는 경우nextval('my_seq'::regclass), PostgreSQL기본 표현식이 순서에 따라 다르다는 것을 이해합니다.my_seq, 따라서 시스템은 먼저 기본 표현식을 제거하지 않고는 시퀀스를 삭제할 수 없습니다. 대안은nextval('my_seq'::text)종속성을 생성하지 않습니다. (regdatabase그리고regrole은 이 속성에 대한 예외입니다. 이러한 범퍼카 토토의 상수는 저장된 표현식에서 허용되지 않습니다.)
시스템에서 사용하는 또 다른 식별자 범퍼카 토토은xid또는 거래(약어)정확함) 식별자입니다. 이것은 시스템 열의 데이터 범퍼카 토토입니다.xmin그리고xmax. 거래 식별자는 32비트 수량입니다. 일부 상황에서는 64비트 변형xid8사용됩니다. 달리xid값,xid8값은 엄격하게 단조롭게 증가하며 데이터베이스 클러스터 수명 동안 재사용할 수 없습니다. 참조섹션 67.1자세한 내용은.
시스템에서 사용하는 세 번째 식별자 범퍼카 토토은 다음과 같습니다.시드또는 명령 식별자. 이것은 시스템 열의 데이터 범퍼카 토토입니다.cmin그리고cmax. 명령 식별자도 32비트 수량입니다.
시스템에서 사용하는 최종 식별자 범퍼카 토토은tid또는 튜플 식별자(행 식별자). 이것은 시스템 열의 데이터 범퍼카 토토입니다.ctid. 튜플 ID는 테이블 내 행의 물리적 위치를 식별하는 쌍(블록 번호, 블록 내 튜플 인덱스)입니다.
(시스템 열에 대한 자세한 내용은 다음에 설명되어 있습니다.PostgreSQL : 문서 : 개발 : 5.6. 스포츠 토토 베트맨 열.)