мы можем использовать усеченный запрос в Android SQLite - PullRequest
11 голосов
/ 19 августа 2010

мы можем использовать усеченный запрос в базе данных Android? в противном случае мы можем выполнить операцию усечения, используя наш код Java?

Ответы [ 3 ]

12 голосов
/ 19 августа 2010

Если мне нужно обрезать таблицу, я просто отбрасываю и воссоздаю ее.

Документация (http://www.sqlite.org/lang_delete.html):

Когда WHERE опущен в операторе DELETE, а в удаляемой таблице нет триггеров, SQLite использует оптимизацию для удаления всего содержимого таблицы без необходимости посещения каждой строки таблицы по отдельности. Эта «усеченная» оптимизация делает удаление намного быстрее.
6 голосов
/ 26 июля 2011

УДАЛИТЬ ОТ имя таблицы
ВАКУУМНАЯ

Ex:

db.execSQL("DELETE FROM " + TABLE_NAME);
db.execSQL("VACUUM");

Примечание: это не сбрасывает нумерацию строк для строк с помощью AUTOINCREMENT. Для этого вам нужно сбросить стол и воссоздать его.

источник: http://phpcode.mypapit.net/how-to-truncate-table-in-sqlite-database/49/

1 голос
/ 25 февраля 2011

Это код, который я использовал, только для иллюстрации:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...