Intereting Posts
Использование ServiceWorker в Кордове Проверка статуса GPS с помощью Служб Google Play Как настроить прослушиватель onBackButton на активность Неправильный номер сборки в файле config.xml Должен ли я использовать AsyncTask или IntentService для моего приложения? Может ли OpenGL ES визуализировать текстуры без базовых размеров? Touchend не стреляет после касания Не удалось создать Android-приложение (см. Как ActionBarSherlock & ViewPagerTabs) с Ant Повторное использование просмотров в Android Listview с двумя различными макетами Установка Android-приложения: Неизвестный сбой (Failure – не установлен для 0) Лучший способ Android получить местоположение в фоновом режиме с учетом батареи По умолчанию FirebaseApp не инициализирован Ant не перестраивает Android-приложение с помощью `ant debug install` Как изменить положение кнопки ручки джойстика Как запустить конкретное приложение для Android с помощью терминала?

Сброс автоинкремента в Android SQLite

У меня есть этот метод, который удалит все строки из таблицы, но я также хочу, чтобы он сбросил автоинкремент, чтобы при добавлении новой строки он снова запустится. Оператор SQL, который я использую, не работает из-за отсутствия определенных столбцов. Я делаю это правильно?

private void rmvall() { SQLiteDatabase db = appts.getWritableDatabase(); db.delete(TABLE_NAME, null, null); db.execSQL("DELETE FROM SQLITE_SEQUENCE WHERE NAME = " + TABLE_NAME); } 

Solutions Collecting From Web of "Сброс автоинкремента в Android SQLite"

Вам понадобятся одинарные кавычки вокруг имени вашей таблицы, т. Е.

 db.execSQL("DELETE FROM SQLITE_SEQUENCE WHERE NAME = '" + TABLE_NAME + "'"); 

Основываясь на ответе dldnh:

Следующий запрос будет устанавливать seq в наибольшее значение в столбце col в таблице Tbl , поэтому нет риска нарушения ограничений.

 UPDATE sqlite_sequence SET seq = (SELECT MAX(col) FROM Tbl) WHERE name="Tbl" 

Я слишком старался.

Наконец, я получил этот код ответа …

 Book.deleteAll(Book.class); book=new Book(user, pass); book.setId(Long.valueOf(book.listAll(Book.class).size())); book.save(); 

Этот код работает как удаление и воссоздание таблицы. И идентификатор сброса.

удачи

Вы также можете использовать метод delete () SQLiteDatabase, например

 db.delete("SQLITE_SEQUENCE","NAME = ?",new String[]{TABLE_NAME});