REINDEX

REINDEX

REINDEX 명령은 인덱스를 삭제하고 다시 생성하는 데 사용해요. 주로 손상된 인덱스를 복구하거나, 정렬 순서(collation sequence)가 변경된 인덱스를 다시 만들 때 사용됩니다. 이 명령으로 단일 인덱스, 특정 테이블의 모든 인덱스, 또는 데이터베이스 전체의 모든 인덱스를 재생성할 수 있습니다.

출처: 문서

본문

reindex-stmt:

REINDEX schema-name . index-name EXPRESSIONS table-name collation-name

REINDEX 명령은 인덱스를 처음부터 삭제하고 다시 생성하는 데 사용해요. 이는 콜레이션 시퀀스의 정의가 변경되었거나, 정의가 변경된 함수를 포함하는 표현식에 대한 인덱스가 있을 때 유용해요.

REINDEX 키워드 뒤에 콜레이션 시퀀스, 데이터베이스 객체 식별자, 또는 "EXPRESSIONS" 키워드가 오지 않으면, 모든 연결된 데이터베이스의 모든 인덱스가 다시 생성돼요.

REINDEX 키워드 뒤에 콜레이션 시퀀스 이름이 오면, 해당 콜레이션 시퀀스를 사용하는 모든 연결된 데이터베이스의 인덱스가 다시 생성돼요.

또는 REINDEX에 전달된 인수가 특정 데이터베이스 테이블을 가리키면, 그 테이블에 연결된 모든 인덱스가 다시 생성돼요. 특정 데이터베이스 인덱스를 가리키면 해당 인덱스만 다시 생성돼요.

인수가 "EXPRESSIONS"이면 표현식에 대한 모든 인덱스가 다시 생성돼요. 이처럼 단일 명령으로 표현식 인덱스를 다시 생성하는 기능은 SQLite 버전 3.53.0(2026-04-09)부터 새로 도입됐어요.

REINDEX name 형태의 명령에서 콜레이션 이름에 대한 일치가 인덱스 이름이나 테이블 이름에 대한 일치보다 우선해요. 이 문법의 모호함은 특정 테이블이나 인덱스를 다시 생성할 때 항상 스키마 이름을 지정하면 피할 수 있어요. name이 EXPRESSIONS이면, 명령은 위의 우선순위 규칙에 따라 모든 표현식 인덱스를 다시 생성하는 것 외에도 "expressions"라는 이름의 콜레이션 시퀀스를 사용하는 인덱스나 "expressions"라는 이름의 테이블의 인덱스 또는 "expressions"라는 이름의 인덱스도 다시 생성해요.

이 페이지는 2026-03-21 13:08:51Z에 마지막으로 업데이트되었어요.

더 알아보기 (Learn more)