2012-10-17 5 views
0

나는 android app에서 sqlite를 사용하고 있으며 고유 한 2 행 값으로 표에 삽입하려고합니다. 예를 들어 :2 개의 고유 값 삽입 또는 바꾸기

id| column1 | column2 | column3| 
1. 1    2  3 
2. 2    3  4 

고유 열 - COLUMN1 및 COLUMN2

INSERT OR REPLACE INTO HISTORY (id, column1, column2, column3) VALUES (null, 2, 3, 6); 

그러나이 쿼리해야하지 작품 '원인 1, 2 값은 테이블

Thnx에서 고유하지 않습니다. 그런 다음

CREATE TABLE History (
    _id INTEGER PRIMARY KEY, 
    column1 INTEGER, 
    column2 INTEGER, 
    column3 INTEGER, 
    UNIQUE (column1, column2)); 

당신이이 INSERT 문하려고하면 : 나는 당신의 질문을 이해하면 테이블을 만들 때

답변

0

, 단순히 UNIQUE constraint를 사용

INSERT INTO History (column1, column2, column3) VALUES (2, 3, 0); 
INSERT INTO History (column1, column2, column3) VALUES (2, 3, 6); 

은 두 번째는 실패를 이미 column1column2 때문에 있다.

내 예제에서 INSERT OR REPLACE을 사용하면 두 번째 명령문이 첫 번째 예외 (throw 된 예외 없음)를 대체하게됩니다.


하지만 방법은 내가 존재하는 테이블에 고유 추가 할 수 있습니까?

일반적으로 당신은 당신의 기존 테이블에 제약 조건을 추가 할 ALTER TABLE을 사용하지만, SQLite는이가 ... 당신은이 제한을 해결할 수 있습니다 그러나 허용하지 않습니다

CREATE UNIQUE INDEX name ON History(column1, column2); 
+0

덕분에, 나는 그것을 시도하지만, 어떻게 내가 존재하는 테이블에 고유하게 추가 할 수 있습니까? 테이블 변경 ...? 그리고 나는 "unique index ...를 만들려고 노력했다."그러나 이것은 도움이되지 않습니다. – Gorets