Android 房间 - 清除 sqlite_sequence 不起作用

uda*_*day 5 android android-sqlite android-room

以下代码不会将自动增量 ID 重置/清除为 0

database = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, DatabaseMeta.DB_NAME)
            .build();
database.query("DELETE FROM sqlite_sequence WHERE name = ?", new Object[]{"tableName"});
Run Code Online (Sandbox Code Playgroud)

或者

database.query("REPLACE INTO sqlite_sequence (name, seq) VALUES ('mission', -1)", null);
Run Code Online (Sandbox Code Playgroud)

无论如何要清除sqlite_sequenceAndroid房间吗?

我认为,Android 房间没有使用“sqlite_sequence”进行自动递增逻辑,我不确定。尝试打印sqlite_sequence条目,找不到我使用的表名(具有自动递增主键)。

byt*_*0de 1

试试这个代码对我有用

class FeedReaderDbHelper extends SQLiteOpenHelper {
    static final int DATABASE_VERSION = 1;
    static final String DATABASE_NAME = DBConfig.DATABASE_NAME;

    FeedReaderDbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public void onCreate(SQLiteDatabase db) {
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onCreate(db);
    }

    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onUpgrade(db, oldVersion, newVersion);
    }
}

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(mainContext.getApplicationContext());
mDbHelper.getWritableDatabase().execSQL("DELETE FROM sqlite_sequence WHERE name='table_name';");
Run Code Online (Sandbox Code Playgroud)