Как перезапустить идентификатор автоинкремента с 1 в базе данных Android SQLite - PullRequest
5 голосов
/ 07 сентября 2011

У меня есть база данных Android SQLite, и я вставил несколько строк. После того как я удалил эти строки, столбец идентификаторов продолжается с последнего идентификатора, и я хотел бы возобновить подсчет с 1.

Ответы [ 3 ]

5 голосов
/ 07 сентября 2011

Попробуйте:

delete from sqlite_sequence where name='your_table';
5 голосов
/ 07 сентября 2011

В вашем файле .db есть таблица с именем sqlite_sequence

В каждой строке есть два столбца 'name', которые являются именем таблицы 'seq', целое число, указывающее текущее последнее значение в этой таблице

Вы можете обновить его до 0

Но будьте осторожны, если ваша таблица использует этот идентификатор в качестве уникального идентификатора.

Посмотрите на этот ответ: Поле сброса основного ключа SQLite

1 голос
/ 22 ноября 2013

Если вы хотите сбросить каждый 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);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...