SQLite 자동 증가 기본 키 재설정 방법
자동 증가 기본 키 값을 재설정하는 것은 SQLite 데이터베이스 작업 시 흔히 발생하는 문제입니다. 이 기사에서는 이에 대해 살펴보고 효과적인 솔루션을 제공할 것입니다.
시나리오 및 질문
사용자가 SQLite 데이터베이스의 여러 테이블에 대한 자동 증가 필드를 재설정하려고 했습니다. 그러나 DELETE FROM
명령을 사용하여 모든 데이터를 삭제해도 필드가 0으로 재설정되지는 않습니다. 반면, 자동 증가는 데이터가 삭제된 후에도 마지막 값부터 계속해서 증가합니다.
자세한 설명
이 문제는 SQLite가 SQLITE_SEQUENCE
이라는 별도의 테이블을 사용하여 각 테이블의 가장 높은 ROWID 값을 추적하기 때문에 발생합니다. 새 레코드가 삽입되면 AUTOINCREMENT 알고리즘은 SQLITE_SEQUENCE
테이블을 확인하여 사용 가능한 다음 기본 키 값을 결정합니다.
기본 테이블에서 데이터를 삭제하면 관련 행만 삭제됩니다. SQLITE_SEQUENCE
테이블은 변경되지 않은 상태로 유지되므로 자동 증가 카운터는 마지막 값부터 계속해서 증가합니다.
솔루션
기본 키 필드를 원하는 값으로 재설정하려면 다음 두 문을 실행하세요.
<code class="language-sql">DELETE FROM your_table; DELETE FROM sqlite_sequence WHERE name='your_table';</code>
첫 번째 문은 기본 테이블의 모든 데이터를 삭제합니다. 두 번째 문은 SQLITE_SEQUENCE
테이블에서 해당 테이블의 항목을 삭제하여 가장 높은 ROWID 값을 0으로 재설정합니다.
기타 참고사항
SQLITE_SEQUENCE
테이블 수정은 주의해서 수행해야 합니다. 위 내용은 SQLite에서 자동 증가 기본 키를 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!