Как очистить primary key в таблице?
Я несколько раз удалял (или очищал) таблицу командой DROP TABLE IF EXISTS..., но, несмотря на то, что записей всего 3, primary key (_id) ведёт отсчёт не с 1 Как его можно обнулить?
Вот код DBHelper, в котором создаю базу данных
package com.nikitafront.androidlearning;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "MyDatabase";
public static final String TABLE_NAME = "users";
public static final String KEY_ID = "_id";
public static final String KEY_LOGIN= "_login";
public static final String KEY_PASSWORD = "_password";
public DBHelper(@Nullable Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "
+ TABLE_NAME + " ("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "
+ KEY_LOGIN + " TEXT, "
+ KEY_PASSWORD + " TEXT"
+ ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
Ответы (2 шт):
Автор решения: Никита Попов
→ Ссылка
Так как я перебирал все записи в главном файле через класс cursor, я просто воспользовался методом класса getCount(), который мне выдал номер строки (спасбио за подсказку пользователю Akina)
А сбросить счётчик _id помогло удаление таблицы через "DROP TABLE", а затем удаление файлов бд из файловой системы эмулятора
