2012-06-01 3 views
0

에서 항목 삭제 및 해제 오프라인 저장소가있는 프로젝트의 경우 ID를위한 기본 키와 날짜가있는 고유 필드가있는 데이터베이스를 만들었습니다.고유 키 색인

항목을 삭제할 때 삭제 된 항목과 같은 날짜로 새 항목을 만들 수 없습니다.

해당 항목을 삭제할 때 색인에서 날짜를 가져 오려면 어떻게해야합니까?

이 내가 표를 만드는 방법은 다음과 같습니다

CREATE TABLE IF NOT EXISTS userdata (id INTEGER PRIMARY KEY ASC, entrydate DATE UNIQUE, strength, comments 

내가 나를 다시 즉시 다시 무료로 같은 값을 사용할 수 있도록 DB 서버에게 무언가를 추가 할 필요가 궁금. SQLite가 내부 레코드를 업데이트하는 일종의 업데이트를 실행해야 할 수도 있습니다.

답변

0

여기에는 몇 가지 가능성이 있습니다.

  1. 귀하의 삭제 진술은 uncommitted transaction입니다. 따라서 삽입하기 전에 테이블에서 고유 값이 실제로 제거되지 않았습니다.

  2. 삭제할 값과 삽입 할 새 값이 실제로 같은 값이 아닙니다. select를 실행하고 삽입하려는 값이 실제로 사용 가능한지 확인하십시오.

  3. 색인이 손상되어 reindex it이 필요합니다.

+0

예 거래를 사용합니다. 그것이 이유 일 수 있습니다. 어떻게 거래를 할 수 있는지 아십니까? –

+0

여기 좀보세요 : http://grox.net/doc/sqlite/lang_transaction.html 또한 그 linq로 대답을 업데이 트했습니다. 성공적으로 커밋에 대한 요구 사항에 세심한주의를 기울이십시오. – RThomas

+0

시도했지만 HTML5 환경에서 작동하지 않는 것 같습니다. 저는 5 단계에서 [http://www.html5rocks.com/en/tutorials/webdatabase/todo/](http://www.html5rocks.com/en/tutorials/webdatabase/todo/)에 설명 된 거래를 사용했습니다. –