Я думаю, что это может работать:

ользую Room для того, чтобы сохранить данные. У меня есть объект, который имеет автоматически сгенерированный первичный ключ, который имитирует систему заявок.

Сущность:

@Entity
public class SequenceAction {

    @PrimaryKey(autoGenerate = true)
    private Integer sequenceId;
    private String actionType;
    private String extraInfo;
    //getters&setters
}

Инициализация:

sequenceAction = new SequenceAction();
sequenceAction.setActionType(COLLECT_ALL);
sequenceAction.setExtraInfo("id = " + ids.get(i));
//run this line with executer(sequenceId is automatically set on insert to table):
AppDatabase.getInstance(getContext()).sequenceActionDao().save(sequenceAction);

При каждом запуске приложения этот ключ должен начинаться с 0.

я используюAppDatabase.getInstance(getApplicationContext()).clearAllTables(); чтобы очистить таблицы на выходе, но этоне сбросить начальный индекс ключа, вместо этого он начинает с того места, где остановился при последнем запуске.

Я не нашел способ сделать это с помощью Room, поэтому я пытаюсь сделать это с помощью SimpleSQLiteQuery:

new SimpleSQLiteQuery("...query...");

Перешел к методу RawQuery в моем Дао:

@RawQuery() Integer init(SimpleSQLiteQuery query);

Я пробовал следующие запросы:

"ALTER TABLE SequenceAction AUTO_INCREMENT = 0"

Я получаю сообщение об ошибке (я пробовал это с «AUTOINCREMENT», та же ошибка):

android.database.sqlite.SQLiteException: возле "AUTO_INCREMENT": синтаксическая ошибка (код 1): при компиляции: ALTER TABLE SequenceAction AUTO_INCREMENT = 0

вероятно, потому что, какэтот вопрос / ответ утверждает, что в SQLite нет ключевого слова автоинкремента, вместо этого столбец, объявленный INTEGER PRIMARY KEY, автоматически автоинкремментирует.

"delete from sqlite_sequence where name='SequenceAction'"

Нет ошибки, но индекс также не сбрасывается.

Как предложеноВот:

"UPDATE SQLITE_SEQUENCE SET seq = -1 WHERE name = 'SequenceAction'"

Нет ошибки, но нет эффекта.

"TRUNCATE TABLE 'SequenceAction';"

Ошибка (возможно потому чтоSQLite не поддерживает команду TRUNCATE):

android.database.sqlite.SQLiteException: возле "TRUNCATE": синтаксическая ошибка (код 1): при компиляции: TRUNCATE TABLE 'SequenceAction';

Итак ... последняя попытка:DELETE FROM SequenceAction

Нет ошибки, нет эффекта.

Ответы на вопрос(2)

Ваш ответ на вопрос