복붙노트

[SQL] 기본 키 필드를 재설정 SQLite는

SQL

기본 키 필드를 재설정 SQLite는

나는 SQLite는 몇 테이블이 나는 자동 증가 데이터베이스 필드를 재설정하는 방법을 알아 내려고 노력하고있다.

나는 모든을 삭제하고 0으로 자동 incremement 필드 다시 재설정해야 TABLENAME에서 해당 DELETE를 읽을 수 있지만 나는이 작업을 수행 할 때 그냥 데이터를 삭제합니다. 새 레코드는 삭제되기 전에 중단 된 부분까지 자동 증가 픽을 삽입합니다.

다음과 같이 내 답하라 필드 속성은 다음과 같습니다 :

내가 SQLite는 마에스트로의 테이블을 구축하고 나뿐만 아니라 SQLite는 마에스트로의 DELETE 문을 실행하고 중요합니까?

어떤 도움도 좋은 것입니다.

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    delete from your_table;    
    delete from sqlite_sequence where name='your_table';
    

    SQLite는 자동 증가

  2. ==============================

    2.당신은 당신의 테이블에서 삭제 된 행 후 업데이트 시퀀스로 재설정 할 수 있습니다

    당신은 당신의 테이블에서 삭제 된 행 후 업데이트 시퀀스로 재설정 할 수 있습니다

    UPDATE SQLITE_SEQUENCE SET SEQ=0 WHERE NAME='table_name';
    
  3. ==============================

    3.당신이 SQLite는 데이터베이스 브라우저를 가지고 더 GUI 솔루션으로 기울어 경우 다른 옵션으로, 당신은 필드 이름이 테이블의 이름입니다 sqlite_sequence 테이블을 편집 할 수 있습니다. 더블 필드 서열의 셀을 클릭하고 팝업 대화 상자에서 값을 0으로 변경합니다.

    당신이 SQLite는 데이터베이스 브라우저를 가지고 더 GUI 솔루션으로 기울어 경우 다른 옵션으로, 당신은 필드 이름이 테이블의 이름입니다 sqlite_sequence 테이블을 편집 할 수 있습니다. 더블 필드 서열의 셀을 클릭하고 팝업 대화 상자에서 값을 0으로 변경합니다.

  4. ==============================

    4.재설정하려는 경우 컨텐츠 제공 업체를 통해 매일의 RowId이 시도

    재설정하려는 경우 컨텐츠 제공 업체를 통해 매일의 RowId이 시도

    rowCounter=1;
    do {            
                rowId = cursor.getInt(0);
                ContentValues values;
                values = new ContentValues();
                values.put(Table_Health.COLUMN_ID,
                           rowCounter);
                updateData2DB(context, values, rowId);
                rowCounter++;
    
            while (cursor.moveToNext());
    
    public static void updateData2DB(Context context, ContentValues values, int rowId) {
        Uri uri;
        uri = Uri.parseContentProvider.CONTENT_URI_HEALTH + "/" + rowId);
        context.getContentResolver().update(uri, values, null, null);
    }
    
  5. from https://stackoverflow.com/questions/1601697/sqlite-reset-primary-key-field by cc-by-sa and MIT license