SQLite 데이터베이스에 대한 순수한 학문적 질문이 있습니다.SQLite DB의 식별 열 최대 값
SQLite.net을 사용하여 WinForm 프로젝트에서 데이터베이스를 사용하고 있으며 새 테이블을 설정할 때 ID 열의 최대 값을 고려해야합니다.
나는 SQLite.net DataType Mappings에 따라 DbType.Int64
에 해당하는 내 [ID]
열에 IDENTITY
을 사용합니다. 나는 일반적으로 ID 열을 0으로 시작하고 (테스트 레코드로 해당 행 포함) 데이터베이스를 자동 증가시킵니다.
최대 값 (Int64.MaxValue
)은 9,223,372,036854775807입니다. 내 목적을 위해, 나는 그 최대에 도달 할 때 표면을 긁지 않을 것이다. 그러나 데이터베이스에서 어떤 일이 일어나는가? 이 글을 읽으려는 동안, DB2는 ID 열이 고유해야하기 때문에 데이터베이스가 행을 삽입 할 수 없을 때까지 DB2가 음수 값 (-9,223,372,036854775807)을 중심으로 값을 분명히 "랩"하고 거기에서 증가한다는 것을 발견했습니다.
SQLite 및/또는 다른 데이터베이스 엔진에서 이러한 현상이 발생합니까?
SQLite의 공식 문서는 http://www.sqlite.org/autoinc.html에서 다루고 있습니다. 아래에서 좀 더 자세한 답변을 추가했습니다. –