테이블 레코드를 논리적 순서로 표시하고 액세스하는 인덱스 파일을 만듭니다.
문법
INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]
[FOR lExpression]
[COMPACT]
[ASCENDING | DESCENDING]
[UNIQUE | CANDIDATE]
[ADDITIVE]
주장들
eExpression
현재 테이블의 필드 또는 필드 이름을 포함할 수 있는 인덱스 식을 지정합니다. 인덱스 식을 기반으로 하는 인덱스 키는 테이블의 각 레코드에 대한 인덱스 파일에 만들어집니다. Visual FoxPro는 이러한 키를 사용하여 테이블의 레코드를 표시하고 액세스합니다.
비고
권장되지는 않지만 eExpression 은 메모리 변수, 배열 요소 또는 다른 작업 영역의 테이블에서 필드 또는 필드 식일 수도 있습니다. 메모 필드는 인덱스 파일 식에서만 사용할 수 없습니다. 다른 문자 식과 결합해야 합니다. 더 이상 존재하지 않거나 위치할 수 없는 변수 또는 필드가 포함된 인덱스에 액세스하면 Visual FoxPro에서 오류 메시지가 생성됩니다.
길이가 다른 키를 사용하여 인덱스를 작성하려고 하면 키에 공백이 채워지게 됩니다. 가변 길이 인덱스 키는 Visual FoxPro에서 지원되지 않습니다.
길이가 0인 인덱스 키를 만들 수 있습니다. 예를 들어 인덱스 식이 빈 메모 필드의 부분 문자열인 경우 길이가 0인 인덱스 키가 만들어집니다. 길이가 0인 인덱스 키는 오류 메시지를 생성합니다. Visual FoxPro는 인덱스를 만들 때 테이블의 첫 번째 레코드에 있는 필드를 평가합니다. 필드가 비어 있는 경우 0 길이의 인덱스 키를 방지하기 위해 첫 번째 레코드의 필드에 일부 임시 데이터를 입력해야 할 수 있습니다.
TO IDXFileName
.idx 인덱스 파일을 만듭니다. 인덱스 파일에는 기본 확장명은 .idx로 지정됩니다.
TAG TagName[OF CDXFileName]
복합 인덱스 파일을 만듭니다. 복합 인덱스 파일은 여러 개의 개별 태그(인덱스 항목)로 구성된 단일 인덱스 파일입니다. 각 태그는 고유한 태그 이름으로 식별됩니다. 태그 이름은 문자 또는 밑줄로 시작해야 하며 최대 10자, 숫자 또는 밑줄의 조합으로 구성됩니다. 복합 인덱스 파일의 태그 수는 사용 가능한 메모리 및 디스크 공간에 의해서만 제한됩니다.
다중 항목 복합 인덱스 파일은 항상 압축됩니다. 복합 인덱스 파일을 만들 때 COMPACT를 포함할 필요는 없습니다. 복합 인덱스 파일의 이름에는 .cdx 확장명을 지정합니다.
구조적 및 비구조적 인덱스 파일의 두 가지 유형을 만들 수 있습니다.
구조적 복합 인덱스 파일 선택적 OF CDXFileName 절을 제외하여 TAG TagName을 사용하여 구조적 복합 인덱스 파일을 만들 수 있습니다. 구조적 복합 인덱스 파일은 항상 테이블과 동일한 기본 이름을 하며 테이블을 열 때 자동으로 열립니다.
비구조적 복합 인덱스 파일 TAG TagName 다음에 OF CDXFileName을 포함하여 비구조적 복합 인덱스 파일을 만들 수 있습니다. 구조적 복합 인덱스 파일과 달리 비구조적 복합 인덱스 파일은 USE의 INDEX 절을 사용하여 명시적으로 열어야 합니다.
복합 인덱스 파일을 이미 만들고 연 경우 TAG TagName 을 사용하여 INDEX를 실행하면 복합 인덱스 파일에 태그가 추가됩니다.
FOR lExpression
필터 식 lExpression 을 충족하는 레코드만 표시 및 액세스에 사용할 수 있는 조건을 지정합니다. 인덱스 키는 필터 식과 일치하는 레코드에 대한 인덱스 파일에 만들어집니다.
Visual FoxPro Rushmore 기술은 INDEX를 최적화합니다... lExpression이 최적화 가능한 식인 경우 FOR lExpression 명령입니다. 최상의 성능을 위해 FOR 절에서 최적화 가능한 식을 사용합니다.
콤팩트
압축 .idx 파일을 만듭니다.
오름차순
.cdx 파일의 오름차순을 지정합니다. 기본적으로 .cdx 태그는 오름차순으로 생성됩니다. (인덱스 파일의 순서를 미리 알림으로 오름차순으로 포함할 수 있습니다.) 내림차순으로 테이블을 인덱싱할 수 있습니다.
내림차순
.cdx 파일의 내림차순을 지정합니다. .idx 인덱스 파일을 만들 때는 DESCENDING을 포함할 수 없습니다.
독특한
특정 인덱스 키 값이 있는 첫 번째 레코드만 .idx 파일 또는 .cdx 태그에 포함되도록 지정합니다. UNIQUE는 중복 레코드의 표시 또는 액세스를 방지하는 데 사용할 수 있습니다. 중복 인덱스 키를 사용하여 추가된 모든 레코드는 인덱스 파일에서 제외됩니다. INDEX의 UNIQUE 옵션을 사용하는 것은 INDEX 또는 REINDEX를 실행하기 전에 SET UNIQUE ON을 실행하는 것과 동일합니다.
UNIQUE 인덱스 또는 인덱스 태그가 활성화되고 중복 레코드가 인덱스 키를 변경하는 방식으로 변경되면 인덱스 또는 인덱스 태그가 업데이트됩니다. 그러나 REINDEX를 사용하여 파일을 다시 인덱싱할 때까지는 원래 인덱스 키가 있는 다음 중복 레코드에 액세스하거나 표시할 수 없습니다.
후보자
후보 구조 인덱스 태그를 만듭니다. CANDIDATE 키워드는 구조적 인덱스 태그를 만들 때만 포함할 수 있습니다. 그렇지 않으면 Visual FoxPro에서 오류 메시지를 생성합니다.
후보 인덱스 태그는 필드의 중복 값 또는 인덱 스 식 eExpression에 지정된 필드의 조합을 방지합니다. 후보라는 용어는 인덱스 유형을 나타냅니다. 후보 인덱스는 중복 값을 방지하므로 기본 인덱스로 "후보"로 한정됩니다.
필드 또는 이미 중복 값이 포함된 필드 조합에 대한 후보 인덱스 태그를 만들면 Visual FoxPro에서 오류가 발생합니다.
첨가물
이전에 연 인덱스 파일을 계속 엽니다. INDEX가 있는 테이블에 대한 인덱스 파일 또는 파일을 만들 때 ADDITIVE 절을 생략하면 이전에 연 인덱스 파일(구조적 복합 인덱스 제외)이 닫힙니다.
비고
인덱스 파일이 있는 테이블의 레코드는 인덱스 식에서 지정한 순서대로 표시되고 액세스됩니다. 테이블의 레코드의 실제 순서는 인덱스 파일에 의해 변경되지 않습니다.
인덱스 형식
Visual FoxPro를 사용하면 다음 두 가지 유형의 인덱스 파일을 만들 수 있습니다.
태그라는 여러 인덱스 항목을 포함하는 복합 .cdx 인덱스 파일
하나의 인덱스 항목을 포함하는 .idx 인덱스 파일
테이블과 함께 자동으로 열리는 구조적 복합 인덱스 파일을 만들 수도 있습니다.
비고
구조적 복합 인덱스 파일은 테이블을 열 때 자동으로 열리기 때문에 기본 인덱스 형식입니다.
COMPACT를 포함하여 압축 .idx 인덱스 파일을 만듭니다. 복합 인덱스 파일은 항상 압축됩니다.
인덱스 순서 및 업데이트
하나의 인덱스 파일(마스터 인덱스 파일) 또는 태그(마스터 태그)만 테이블이 표시되거나 액세스되는 순서를 제어합니다. 특정 명령(예: SEEK)은 마스터 인덱스 파일 또는 태그를 사용하여 레코드를 검색합니다. 그러나 테이블이 변경되면 열려 있는 모든 .idx 및 .cdx 인덱스 파일이 업데이트됩니다.
사용자 정의 함수
인덱스 식은 사용자 정의 함수를 포함할 수 있지만 인덱스 식에서 사용자 정의 함수를 사용하면 안 됩니다. 인덱스 식의 사용자 정의 함수는 인덱스를 만들거나 업데이트하는 데 걸리는 시간을 늘립니다. 또한 인덱스 식에 사용자 정의 함수를 사용하는 경우 인덱스 업데이트가 발생하지 않을 수 있습니다.
인덱스 식에서 사용자 정의 함수를 사용하는 경우 Visual FoxPro는 사용자 정의 함수를 찾을 수 있어야 합니다. Visual FoxPro에서 인덱스가 만들어지면 인덱스 식이 인덱스 파일에 저장되지만 사용자 정의 함수에 대한 참조만 인덱스 식에 포함됩니다.
또한 참조하십시오
ALTER TABLE - SQL 명령
DELETE TAG 명령
SET COLLATE 명령
SET UNIQUE 명령