모든 테이블에는 여러 개가 있습니다.토토 캔 열토토 캔에 의해 암시적으로 정의됩니다. 따라서 이러한 이름은 사용자 정의 열의 이름으로 사용할 수 없습니다. (이러한 제한 사항은 이름이 키워드인지 여부와 별개입니다. 이름을 인용해도 이러한 제한 사항을 피할 수는 없습니다.) 실제로 이러한 열에 대해 걱정할 필요는 없습니다. 존재한다는 것만 알아두세요.
oid행의 개체 식별자(개체 ID). 이 열은 테이블이 다음을 사용하여 생성된 경우에만 존재합니다.OIDS 포함또는 다음과 같은 경우default_with_oids구성 변수가 당시에 설정되었습니다. 이 열의 유형은 다음과 같습니다.oid(열과 동일한 이름); 참조PostgreSQL : 문서 : 10 : 8.18. 객체 식별자 토토 사이트 순위유형에 대한 자세한 내용을 확인하세요.
테이블로이드이 행을 포함하는 테이블의 OID입니다. 이 열은 상속 계층 구조에서 선택하는 쿼리에 특히 유용합니다(참조와이즈 토토 PostgreSQL : 문서 : 10 : 5.9. 계승), 이것이 없으면 행이 어떤 개별 테이블에서 왔는지 알기가 어렵습니다.테이블로이드다음에 대해 합류할 수 있습니다.oid열pg_class테이블 이름을 얻으려면.
xmin이 행 버전에 대한 삽입 트랜잭션의 ID(트랜잭션 ID)입니다. (행 버전은 행의 개별 상태입니다. 행을 업데이트할 때마다 동일한 논리적 행에 대한 새 행 버전이 생성됩니다.)
cmin삽입 트랜잭션 내의 명령 식별자(0부터 시작).
xmax삭제 트랜잭션의 ID(트랜잭션 ID) 또는 삭제 취소된 행 버전의 경우 0입니다. 표시되는 행 버전에서는 이 열이 0이 아닐 수도 있습니다. 이는 일반적으로 삭제 트랜잭션이 아직 커밋되지 않았거나 삭제 시도가 롤백되었음을 나타냅니다.
cmax삭제 트랜잭션 내의 명령 식별자 또는 0입니다.
ctid테이블 내 행 버전의 물리적 위치. 참고하세요.ctid행 버전을 매우 빠르게 찾는 데 사용할 수 있습니다.ctid업데이트되거나 이동되면 변경됩니다.진공이 가득 참. 그러므로ctid장기 행 식별자로는 쓸모가 없습니다. OID 또는 사용자 정의 일련 번호를 사용하여 논리적 행을 식별해야 합니다.
OID는 32비트 수량이며 단일 클러스터 전체 카운터에서 할당됩니다. 대규모 또는 수명이 긴 데이터베이스에서는 카운터가 래핑될 수 있습니다. 따라서 OID가 고유하다는 것을 확인하기 위한 조치를 취하지 않는 한 OID가 고유하다고 가정하는 것은 나쁜 습관입니다. 테이블의 행을 식별해야 하는 경우 시퀀스 생성기를 사용하는 것이 좋습니다. 그러나 몇 가지 추가 예방 조치를 취한다면 OID도 사용할 수 있습니다.
OID가 행을 식별하는 데 사용될 각 테이블의 OID 열에 고유 제약 조건이 생성되어야 합니다. 이러한 고유 제약 조건(또는 고유 인덱스)이 존재할 때 토토 캔은 이미 존재하는 행과 일치하는 OID를 생성하지 않도록 주의합니다. (물론 이는 테이블에 2개 미만이 포함된 경우에만 가능합니다.32(40억) 행, 실제로 테이블 크기는 그보다 훨씬 작은 것이 좋습니다. 그렇지 않으면 성능이 저하될 수 있습니다.)
OID는 테이블 전체에서 고유하다고 가정해서는 안 됩니다. 다음의 조합을 사용하세요.테이블로이드데이터베이스 전체 식별자가 필요한 경우 행 OID.
물론 문제의 테이블이 생성되어야 합니다.OIDS 포함. 현재토토 캔 8.1, OIDS 제외기본값입니다.
거래 식별자도 32비트 수량입니다. 수명이 긴 데이터베이스에서는 트랜잭션 ID가 래핑될 수 있습니다. 적절한 유지 관리 절차를 고려하면 이는 치명적인 문제는 아닙니다. 참조PostgreSQL : 문서 : 10 : 24 장. 일상 스포츠 토토 베트맨 유지 보수 작업16168_16310
명령 식별자도 32비트 수량입니다. 이로 인해 2라는 엄격한 제한이 생성됩니다.32(40억)SQL단일 트랜잭션 내의 명령. 실제로 이 제한은 문제가 되지 않습니다. 제한은 수에 따라 결정됩니다.SQL명령이며 처리된 행 수가 아닙니다. 또한 실제로 데이터베이스 내용을 수정하는 명령만 명령 식별자를 사용합니다.