젠 토토 : 문서 : 9.6 : 젠 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.6 : 범퍼카 토토 유형 | PostgreSQL : 문서 : 9.6 : 데이터 배트맨 토토 | 8 장 데이터 토토 결과 | PostgreSQL : 문서 : 9.6 : PG_LSN 롤 토토 |
객체 식별자 (OID)는 내부적으로 사용됩니다PostgreSQL다양한 시스템 테이블의 기본 키로. OID는 사용자가 만든 테이블에 추가되지 않습니다.OIDS와 함께테이블이 생성 될 때 지정되거나default_with_oids구성 변수가 활성화되었습니다. 토토 결과OID객체 식별자를 나타냅니다. 에 대한 몇 가지 별칭 토토 결과도 있습니다.OID: Regproc, Regrocedure, Regoper, Regoperator, regclass, Regtype, Resprole, regnamespace, RegConfig및Regdictionary. 표 8-24개요를 보여줍니다.
theOID유형은 현재 서명되지 않은 4 바이트 정수로 구현되었습니다. 따라서 대형 데이터베이스 또는 대형 개별 테이블에서 데이터베이스 전체 고유성을 제공하기에 충분히 크지 않습니다.
theOID타입 자체는 비교 이상으로 작업이 거의 없습니다. 그러나 정수로 캐스트 한 다음 표준 정수 연산자를 사용하여 조작 할 수 있습니다.
OID 별칭 유형은 특수 입력 및 출력 루틴을 제외하고는 자체 작업이 없습니다. 이 루틴은 유형의 원시 숫자 값보다는 시스템 객체에 대한 상징적 이름을 수락하고 표시 할 수 있습니다OID사용합니다. 별칭 유형은 객체에 대한 OID 값을 단순화 할 수 있습니다.pg_attribute표와 관련된 행mytable, 하나는 다음을 쓸 수 있습니다 :
선택 *에서 pg_attribute에서 attrelid = 'mytable':: regclass;
대신 :
pg_attribute에서 * 선택 *
그 자체로는 그렇게 나쁘게 보이지는 않지만 여전히 지나치게 단순화되었습니다. 이름이 여러 개의 테이블이있는 경우 올바른 OID를 선택하려면 훨씬 더 복잡한 하위 선택이 필요합니다.mytable다른 스키마에서. 그만큼regclass입력 변환기는 스키마 경로 설정에 따라 테이블 조회를 처리하므로"올바른 것"자동으로. 마찬가지로, 테이블의 OID를 캐스팅regclass숫자의 상징적 인 디스플레이에 편리합니다.
표 8-24. 객체 식별자 유형
이름 | 참조 | 설명 | 값 예제 |
---|---|---|---|
OID | any | 숫자 객체 식별자 | 564182 |
Regproc | PG_PROC | 기능 이름 | Sum |
Regrocedure | PG_PROC | 인수 토토 결과이있는 함수 | sum (int4) |
Regoper | pg_operator | 운영자 이름 | + |
Regoperator | pg_operator | 인수 토토 결과이있는 연산자 | *(정수, 정수)또는-(없음, 정수) |
regclass | pg_class | 관계 이름 | pg_type |
Regtype | pg_type | 데이터 유형 이름 | 정수 |
Resprole | pg_authid | 역할 이름 | Smithee |
regnamespace | pg_namespace | 네임 스페이스 이름 | PG_CATALOG |
RegConfig | PG_TS_CONFIG | 텍스트 검색 구성 | 영어 |
Regdictionary | PG_TS_DICT | 텍스트 검색 사전 | 단순 |
네임 스페이스로 그룹화 된 오브젝트의 모든 OID 별칭 유형은 스키마 자격을 얻은 이름을 수락하고 자격을 갖추지 않고 현재 검색 경로에서 객체를 찾을 수없는 경우 출력에 스키마 자격 이름을 표시합니다. 그만큼RegprocandRegoper별칭 유형은 고유 한 입력 이름 만 허용되므로 (오버로드되지 않음) 사용이 제한되어 있습니다. 대부분의 용도Regrocedure또는Regoperator더 적합합니다. 을 위한Regoperator, 단체 운영자는 서면으로 식별됩니다없음사용하지 않은 피연산자의 경우
대부분의 OID 별칭 유형의 추가 속성은 종속성의 생성입니다. 이러한 유형 중 하나의 상수가 저장된 표현식 (예 : 열 기본 표현식 또는보기)에 나타나면 참조 된 객체에 대한 종속성을 만듭니다.NextVal ( 'my_seq':: regclass), PostgreSQL기본 표현식이 시퀀스에 따라 다르다는 것을 이해합니다my_seq; 시스템은 기본 표현식을 먼저 제거하지 않고 시퀀스를 삭제하지 않습니다.Resprole재산의 유일한 예외입니다. 이 토토 결과의 상수는 그러한 표현에서 허용되지 않습니다.
참고 :OID 별칭 유형은 트랜잭션 격리 규칙을 완전히 따르지 않습니다. 플래너는 또한 그것들을 간단한 상수로 취급하여 최적의 계획을 초래할 수 있습니다..
시스템에서 사용하는 다른 식별자 토토 결과은xid또는 거래 (약어xact) 식별자. 이것은 시스템 열의 데이터 토토 결과입니다xminandxmax. 거래 식별자는 32 비트 수량입니다.
시스템에서 사용하는 세 번째 식별자 토토 결과은CID또는 명령 식별자. 이것은 시스템 열의 데이터 유형입니다cminandcmax. 명령 식별자도 32 비트 수량입니다.
시스템에서 사용하는 최종 식별자 토토 결과은TID또는 튜플 식별자 (행 식별자). 이것은 시스템 열의 데이터 유형입니다CTID. 튜플 ID는 테이블 내의 행의 물리적 위치를 식별하는 쌍 (블록 번호, 블록 내 튜플 인덱스)입니다.
(시스템 열은 자세히 설명되어섹션 5.4.)