| PostgreSQL 9.2.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.2 : 범위 토토 사이트 순위 | 위로 | 제8장. 데이터 범퍼카 토토 | PostgreSQL : 문서 : 9.2 : 의사 사설 토토 | |
개체 식별자(OID)는 다음에서 내부적으로 사용됩니다.포스트그레SQL다양한 기본 키로 시스템 테이블. OID는 다음과 같은 경우를 제외하고는 사용자가 생성한 테이블에 추가되지 않습니다.OIDS 포함테이블이 다음과 같은 경우에 지정됩니다. 생성되었거나default_with_oids구성 변수가 활성화되었습니다. 범퍼카 토토oid객체 식별자를 나타냅니다. 별칭도 여러개 있어요 범퍼카 토토oid: regproc, regprocedure, regoper, regoperator, regclass, regtype, regconfig및regdictionary. 표 8-23다음을 보여줍니다 개요.
그oid유형은 현재 다음과 같이 구현됩니다. 부호 없는 4바이트 정수입니다. 그러므로 크기가 충분하지 않습니다. 대규모 데이터베이스에서 데이터베이스 전체의 고유성을 제공하거나 심지어 큰 개별 테이블에 따라서 사용자가 생성한 테이블의 OID를 사용하여 열을 기본 키로 사용하는 것은 권장되지 않습니다. OID는 다음과 같은 경우에만 사용하는 것이 가장 좋습니다. 시스템 테이블에 대한 참조용입니다.
그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-23. 객체 식별자 유형
| 이름 | 참고자료 | 설명 | 값 예 | 
|---|---|---|---|
| oid | 모든 | 숫자 개체 식별자 | 564182 | 
| regproc | pg_proc | 함수 이름 | 합계 | 
| regprocedure | pg_proc | 인수 범퍼카 토토이 있는 함수 | 합계(int4) | 
| regoper | pg_operator | 운영자 이름 | + | 
| regoperator | pg_operator | 인수 범퍼카 토토이 있는 연산자 | *(정수,정수)또는-(없음,정수) | 
| regclass | pg_class | 관계 이름 | pg_type | 
| regtype | pg_type | 데이터 유형 이름 | 정수 | 
| regconfig | pg_ts_config | 텍스트 검색 구성 | 영어 | 
| regdictionary | pg_ts_dict | 텍스트 검색 사전 | 간단한 | 
모든 OID 별칭 유형은 스키마에 따른 이름을 허용하며, 객체가 다음과 같은 경우 출력에 스키마 한정 이름을 표시합니다. 정규화되지 않은 상태에서는 현재 검색 경로에서 찾을 수 없습니다. 그만큼regproc그리고regoper별칭 유형은 다음과 같은 입력 이름만 허용합니다. 고유하므로(오버로드되지 않음) 사용이 제한됩니다. 대부분의 경우 용도regprocedure또는regoperator더 적합합니다. 에 대한regoperator, 단항 연산자는 다음으로 식별됩니다. 쓰기없음사용되지 않은 피연산자용.
OID 별칭 유형의 추가 속성은 생성입니다. 의존성의. 이러한 유형 중 하나의 상수가 저장된 표현식(예: 열 기본 표현식 또는 뷰) 참조된 개체에 대한 종속성을 만듭니다. 예를 들어, 열에는 기본 표현식이 있습니다.nextval('my_seq'::regclass), PostgreSQL기본값을 이해합니다. 표현은 순서에 따라 다름my_seq; 시스템이 시퀀스를 허용하지 않습니다. 기본 표현식을 먼저 제거하지 않고 삭제되었습니다.
시스템에서 사용하는 또 다른 식별자 유형은 다음과 같습니다.xid또는 거래(약어)정확함) 식별자입니다. 이는 데이터 범퍼카 토토의 시스템 열xmin그리고xmax. 거래 식별자는 32비트입니다. 수량.
시스템에서 사용하는 세 번째 식별자 유형은 다음과 같습니다.시드, 또는 명령 식별자. 이는 데이터 유형의 시스템 열cmin그리고cmax. 명령 식별자도 다음과 같습니다. 32비트 수량.
시스템에서 사용하는 최종 식별자 범퍼카 토토은tid또는 튜플 식별자(행 식별자). 이것은 시스템 열의 데이터 유형ctid. 튜플 ID는 쌍(블록 번호, 물리적 위치를 식별하는 블록 내의 튜플 인덱스) 테이블 내의 행 중 하나입니다.
(시스템 열에 대한 자세한 내용은 다음에 설명되어 있습니다.섹션 5.4.)