모든 테이블에는 여러 개가 있습니다.메이저 토토 사이트 열메이저 토토 사이트에 의해 암시적으로 정의됩니다. 그러므로, 이러한 이름은 사용자 정의 열의 이름으로 사용할 수 없습니다. (이러한 제한사항은 이름이 핵심 단어인지 아닌지; 이름을 인용해도 탈출할 수 없습니다 이러한 제한사항이 있습니다.) 실제로 걱정할 필요는 없습니다. 이 열이 존재한다는 것만 알아두세요.
객체 행의 식별자(객체 ID)입니다. 일련번호입니다 자동으로 추가되는 것입니다.포스트그레SQL모든 테이블 행에( 테이블은 다음을 사용하여 생성되었습니다.없이 OIDS, 이 경우 이 열은 존재하지 않습니다). 이것 열은 유형입니다.oid(동일한 이름 열); 보다PostgreSQL : 문서유형에 대한 자세한 내용을 확인하세요.
이 행을 포함하는 테이블의 OID. 이 칼럼은 상속에서 선택하는 쿼리에 특히 유용합니다. 계층 구조가 없으면 어느 계층인지 말하기 어렵습니다. 개별 테이블에서 행이 나왔습니다. 그만큼테이블로이드다음에 대해 합류할 수 있습니다.oid열pg_class테이블 이름을 얻으려면.
삽입 ID(거래 ID) 이 행 버전에 대한 트랜잭션입니다. (행 버전은 행의 개별 상태; 행을 업데이트할 때마다 동일한 논리적 행에 대한 새 행 버전입니다.)
명령 식별자(0부터 시작) 거래를 삽입하는 중입니다.
삭제 ID(거래 ID) 트랜잭션이거나 삭제되지 않은 행 버전의 경우 0입니다. 그것은 이 열은 보이는 행에서 0이 아닐 수 있습니다. 버전. 이는 일반적으로 삭제 중임을 나타냅니다. 트랜잭션이 아직 커밋되지 않았거나 시도가 있었습니다. 삭제가 롤백되었습니다.
삭제 트랜잭션 내의 명령 식별자, 또는 0입니다.
행 버전의 물리적 위치 테이블. 참고하세요.ctid행을 찾는 데 사용할 수 있습니다. 버전이 매우 빠르게, 한 행ctid업데이트될 때마다 변경됩니다. 또는 이사했습니다진공 가득 참. 그러므로ctid장기적으로는 쓸모가 없습니다 행 식별자. OID 또는 더 나은 사용자 정의 일련 번호는 논리적 행을 식별하는 데 사용되어야 합니다.
OID는 32비트 수량이며 단일에서 할당됩니다. 클러스터 전체 카운터. 규모가 크거나 수명이 긴 데이터베이스에서는 카운터를 감싸는 것이 가능합니다. 그러므로 그것은 나쁘다. 조치를 취하지 않는 한 OID가 고유하다고 가정하는 연습을 하십시오. 이것이 사실인지 확인하십시오. 행을 식별해야 하는 경우 테이블을 생성하려면 시퀀스 생성기를 사용하는 것이 좋습니다. 그러나 몇 가지 추가 사항이 있는 경우 OID도 사용할 수 있습니다. 예방조치를 취하고 있습니다:
다음의 OID 열에 고유 제약 조건이 생성되어야 합니다. OID를 사용하여 식별하는 각 테이블 행.
OID는 테이블 전체에서 고유하다고 가정해서는 안 됩니다. 다음의 조합을 사용하세요.테이블로이드데이터베이스 전체 식별자가 필요한 경우 행 OID.
문제의 테이블은 다음을 사용하여 생성되어야 합니다.OIDS 포함향후 호환성을 보장하기 위해 향후 릴리스포스트그레SQL. 예정되어 있습니다OIDS 제외이 될 것입니다 기본.
트랜잭션 식별자도 32비트 수량입니다. 에서 수명이 긴 데이터베이스에서는 트랜잭션 ID를 래핑할 수 있습니다. 약. 적절한 유지 관리를 통해 치명적인 문제는 아닙니다. 절차; 보다PostgreSQL : 문서 : 8.0 : 일상적인 토토 유지 관리 작업용 세부. 그러나 그 고유성에 의존하는 것은 현명하지 못하다. 장기적으로 거래 ID(10억 개 이상) 업무).
명령 식별자도 32비트 수량입니다. 이것은 하드 제한 232(40억)SQL단일 트랜잭션 내의 명령. ~ 안에 이 한도를 실천하는 것은 문제가 되지 않습니다. 한도가 설정되어 있다는 점에 유의하세요. 수SQL명령, 아님 처리된 행 수입니다.