Oracle의 "Rowid"의사 콜럼의 개념을 가진 오픈 소스 SQL 데이터베이스가 있습니까?

StackOverflow https://stackoverflow.com/questions/816234

  •  03-07-2019
  •  | 
  •  

문제

나는 mysql과 postgresql [1] do를 알고 있습니다. ~ 아니다 그 개념을 가지고 있으므로 개념이있는 오픈 소스 SQL 데이터베이스가 있음을 찾는 데 관심이 있습니다.

1] PostgreSQL에는 rowid pseudo-colum이 있다는 것이 나중에 지적되었다.

도움이 되었습니까?

해결책

PostgreSQL 이 개념이 있습니다.

보다 여기 Pseudocolumns의 간단한 목록 PostgreSQL, 그 중 ctid 당신에게 관심이 있습니다 :

ctid (tuple identifier)

데이터베이스 내 튜플의 물리적 위치를 설명하는 식별자. 한 쌍의 숫자는 CTID : 블록 번호 및 해당 블록 내의 튜플 인덱스로 표시됩니다.

그것은 직접적인 아날로그입니다 Oracle'에스 rowid.

에 관해서 MySQL, 프론트 엔드에는 행의 물리적 위치를 사용할 수 없습니다.

~ 안에 MyISAM, rowid 처음부터 파일 오프셋 일 뿐이며 인덱스 잎에 저장된 것입니다.

~ 안에 InnoDB, 테이블입니다 index organized 디자인으로, 그것은 항상 어떤 종류의 주요 키가 있고, 인덱스는 InnoDB 테이블을 사용합니다 PRIMARY KEY 행 포인터로.

이것은 또한 사실입니다 Oracle'에스 index organized 테이블 rowid 데이터 파일의 블록에 대한 물리적 포인터가 아니라 오히려 logical ROWID, 또는 UROWID

a를 선택한 경우 ROWID an INDEX ORGANIZED 테이블에 Oracle, 당신은 그것이 다른 형식을 가지고 있음을 알 수 있습니다 ( *BAEBwPICwQL+). 이것은 실제로 인코딩 된 것입니다 PRIMARY KEY 값.

열을 다음으로 정의하지 않은 경우 PRIMARY KEY, MySQL 숨겨진 대리를 만들 것입니다 PRIMARY KEY 당신은 어떤 통제도하지 않을 것입니다.

그래서 당신은 항상 일종의 PRIMARY KEY 에서 InnoDB 표 : 무료이며 열을 제어 할 수 있습니다.

다른 팁

그들 중 누구도 그렇게하지 않았다면 다른 사람은하지 않습니다.

sqlite에는 rowid, _rowid 또는 oid를 사용하여 액세스 할 수있는 자동 증분 "rowid"열이 있습니다. 정수 기본 키를 정의하는 경우 별명보다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top