2011-11-26 2 views
0

그래서 자동 증가하는 정수 ID 기본 필드가 필요합니다. 그런 다음 텍스트 필드가있는 다른 키도 필요합니다. 두 개의 항목은 동일한 ID를 가질 수 없으며 동일한 텍스트 필드를 가질 수 없습니다. 문제는 ID가 다르지만 텍스트 필드가 같으면 삽입하기를 원하지 않는다는 것입니다. 불행히도 두 개의 기본 키가있는 테이블을 만들면 삽입 할 수 있다는 의미입니다. 어쨌든 두 개의 기본 키 외에 이것을 표현할 수 있습니까?키로 안드로이드 데이터베이스에 삽입

답변

1

테이블의 키는 이고 하나의 키는입니다. 작성시

CREATE TABLE T1 ... PRIMARY KEY (A, B) 

실제로는 2 개의 기본 키가 아니라 하나의 복합 (즉, 다중 열) 기본 키가 생성됩니다. 이 경우 두 행이 A 및 B 모두 의 동일한 값을 공유 할 수 없음을 의미합니다..

A와 B가 모두 고유해야하는 경우 UNIQUE 제약 조건 (또는 고유 한 색인)을 사용해야합니다. SQLite documentation에서

:

고유 제한 조건이 하나의 테이블에 UNIQUE 제약 조건의 수를 가질 수 있음을 제외하고는 PRIMARY KEY 제약 조건과 유사하다. 테이블의 각 UNIQUE 제한 조건에 대해 각 행은 UNIQUE 제약 조건에 의해 식별 된 열에 고유 한 값 조합을 포함해야합니다. 예를 들어

:

CREATE TABLE T1 (A INTEGER PRIMARY KEY, B INTEGER UNIQUE ...) 
관련 문제