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