2012-07-20 2 views
0

deleteAll() 함수에 대한 질문이 있습니다. 내 데이터베이스에 대해 autoincrement 속성이있는 키를 사용하고 있습니다. 내 DB에서 모든 행을 삭제하면 모든 것을 삭제합니다. 그러나 새 행을 삽입하면 키가 1에서 시작하지 않습니다. 예를 들어 삭제 키가 15가되기 전에 새 키는 삭제 후 1이 아닌 16이됩니다. 이 문제를 어떻게 해결할 수 있습니까? 어떤 제안? 여기Sqlite 모든 함수 삭제

내 코드

public int deleteAll(){ 

return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null); 

} 

    public void onCreate(SQLiteDatabase db) { 

    db.execSQL(SCRIPT_CREATE_DATABASE); 

} 

그리고 내 데이터베이스 스크립트는

private static final String SCRIPT_CREATE_DATABASE = 

    "create table " 
       + MYDATABASE_TABLE + "(" 
       + KEY_ID + " integer primary key autoincrement, " 
       + COLUMN_NAME + " text not null, " 
       + COLUMN_EMAIL + " text not null, " 
       + COLUMN_PHONE + " text not null, " 
       + COLUMN_ADDRESS + " text not null" 
       + ");"; 
+0

왜 자동 증가 키 값이 중요합니까? –

+0

내가 목록보기에 표시하고 있기 때문에 –

답변

1

코드는 자동 증가 키의 값에 의존해서는 안된다.

사용자에게 표시하려면 데이터베이스 커서를 반복 할 때 별도의 카운터를 사용하십시오. 사용자는 일반적으로 키를 알 필요는 없지만 일련 번호 만 알면됩니다. 둘 다 다를 수 있습니다.

그러나 키 값을 다시 시작하라는 메시지가 나타나면 테이블을 삭제하고 다시 만드십시오. 그러나 다른 테이블에서 외래 키로 사용되는 이전 키 값을 조심하십시오. 이러한 경우를 처리하려면 트리거를 사용하십시오.

+0

고맙습니다. –