Можно ли использовать запрос truncate в базе данных Android? в противном случае мы можем выполнить операцию усечения с использованием нашего java-кода?
Мы можем использовать запрос truncate в sqlite android
Ответ 1
Если мне нужно усечь таблицу, я просто сниму ее и заново создаю.
Документация (http://www.sqlite.org/lang_delete.html):
Когда WHERE исключается из оператора DELETE, а удаляемая таблица не имеет триггеров, SQLite использует оптимизацию для стирания всего содержимого таблицы без необходимости посещать каждую строку таблицы отдельно. Эта оптимизация "усечения" делает процесс удаления намного быстрее.
Ответ 2
УДАЛИТЬ ИЗ tablename
ВАКУУМНАЯ
Пример:
db.execSQL("DELETE FROM " + TABLE_NAME);
db.execSQL("VACUUM");
Примечание: это не будет reset нумерация строк для строк с использованием AUTOINCREMENT. Для этого вам нужно будет отбросить таблицу и заново создать ее.
источник: http://phpcode.mypapit.net/how-to-truncate-table-in-sqlite-database/49/
Ответ 3
Это код, который я использовал, только для иллюстрации:
private static final String TABLE_SCHEMA = "CREATE TABLE " + TABLE_NAME + " (\"id\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , \"runtime\" INTEGER, \"timestamp\" DATETIME DEFAULT CURRENT_TIMESTAMP)";
db.execSQL("DROP TABLE " + TABLE_NAME);
db.execSQL(TABLE_SCHEMA);