롤 토토 9.2.24 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.2 : 토토 캔 조건 | 스포츠 토토 : 문서 : 9.2 : 데이터 정의 | 5 장. 데이터 정의 | PostgreSQL : 문서 : 9.2 : 메이저 토토 사이트 수정 |
모든 테이블에는 여러 가지시스템 열시스템에 의해 암시 적으로 정의됩니다. 그러므로, 이 이름은 사용자 정의 열의 이름으로 사용할 수 없습니다. (이 제한은 이름과 분리되어 있습니다. 핵심 단어 여부입니다. 이름을 인용하면 탈출 할 수 없습니다 이러한 제한 사항.) 당신은 실제로 걱정할 필요가 없습니다. 이 열; 그들이 존재한다는 것을 알고 있습니다.
행의 객체 식별자 (객체 ID). 이 칼럼 테이블을 사용하여 작성된 경우에만OIDS와 함께또는default_with_oids구성 변수가 당시에 설정되었습니다. 이 칼럼은입니다 유형OID(와 같은 이름 열); 보다PostgreSQL : 문서 : 9.2 : 객체 식별자 범퍼카 토토유형에 대한 자세한 내용은
이 행이 포함 된 테이블의 OID. 이 칼럼은입니다 상속에서 선택한 쿼리에 특히 편리합니다 계층 구조 (참조토토 : 문서 : 9.2 :), 그것 없이는 어떤 것을 말하기가 어렵습니다 개별 테이블 행이 나왔습니다. 그만큼Tableoid에 가입 할 수 있습니다OID열의pg_class테이블 이름을 얻으려면
삽입의 ID (트랜잭션 ID) 이 행 버전의 거래. (행 버전은 행의 개별 상태; 행의 각 업데이트는 a를 만듭니다 동일한 논리 행을위한 새 행 버전.)
명령 식별자 (0에서 시작) 내 거래 삽입.
삭제의 ID (트랜잭션 ID) 거래되지 않은 행 버전의 경우 트랜잭션 또는 0입니다. 그것은 이 열이 눈에 보이는 행에서 0이 될 수 있습니다. 버전. 일반적으로 삭제임을 나타냅니다 거래는 아직 약속되지 않았거나 시도하지 않았습니다 삭제가 롤백되었습니다.
삭제 트랜잭션 내 명령 식별자, 또는 0.
그 내의 행 버전의 물리적 위치 테이블. 비록CTID행을 찾는 데 사용할 수 있습니다 매우 빨리 버전, 행의CTID업데이트되면 변경됩니다 움직임진공 Full. 그러므로CTID는 장기적으로 쓸모가 없습니다 행 식별자. OID 또는 더 나은 사용자 정의 일련 번호는 논리적 행을 식별하는 데 사용해야합니다.
OIDS는 32 비트 수량이며 단일에서 할당됩니다. 클러스터 전체 카운터. 크거나 오래된 데이터베이스에서는 그렇습니다 카운터가 포장 할 수 있습니다. 따라서 나쁘다 조치를 취하지 않는 한 OID가 독특하다고 가정하도록 연습하십시오. 이것이 사실인지 확인하십시오. 행을 식별 해야하는 경우 시퀀스 생성기를 사용하는 테이블을 강력히 권장합니다. 그러나 몇 가지 추가로 OID도 사용할 수 있습니다. 예방 조치가 취해집니다 :
OID 열에 고유 한 제약이 생성되어야합니다. OID를 사용하여 행을 식별하는 데 사용되는 각 테이블. 그러한 고유 한 제약 (또는 고유 한 색인)이 존재하면 시스템은 일치하는 OID를 생성하지 않도록주의합니다. 이미 존재하는 행. (물론 이것은 경우에만 가능합니다 테이블에는 2 미만32(4 억) 행, 실제로 테이블 크기는 훨씬 적었습니다. 그보다 또는 성능이 어려울 수 있습니다.)
OIDS는 테이블 전체에 독특하다고 가정해서는 안됩니다. 의 조합 사용Tableoid및 ROW OID 데이터베이스 전체 식별자가 필요한 경우
물론 문제의 테이블을 만들어야합니다OIDS와 함께. 기준롤 토토 8.1, OIDS없는기본값입니다.
트랜잭션 식별자도 32 비트 수량입니다. a 수명이 긴 데이터베이스 트랜잭션 ID가 랩을 할 수 있습니다. 약. 이것은 적절한 유지 보수를 고려할 때 치명적인 문제가 아닙니다 절차; 보다와이즈 토토 : 문서 : 9.2 : 일상적인 데이터베이스 유지 관리 작업세부. 그러나 독창성에 의존하는 것은 현명하지 않습니다. 장기적으로 거래 ID (10 억 이상 업무).
명령 식별자도 32 비트 수량입니다. 이것은 a를 만듭니다 2의 하드 제한32(4 억)SQL단일 트랜잭션 내에서 명령. ~ 안에 이 한도를 연습하는 것은 문제가되지 않습니다. 한도는 수SQL명령, 처리 된 행의 수가 아닙니다. 또한 기준롤 토토8.3, 실제로 명령 만 있습니다 데이터베이스 내용을 수정하면 명령이 소비됩니다 식별자.