Я новичок в базе данных SQLite. Это не дубликат какого-либо другого вопроса. Я динамически вставляю строки в таблицу, в которой есть столбцы, такие как название, тег, дата, местоположение и т.д. Я показываю оставшиеся дни с сегодняшнего дня пользователю в списке. Теперь моя проблема в том, что мне нужно обновить столбец оставшихся дней в таблице sqlite за каждый день, чтобы он уменьшался в зависимости от дня. Как обновить все строки этого оставшегося дня одновременно? И как уменьшить/обновить его по времени? Это то, что я пробовал.
public static final String KEY_REMAINING_DAYS = "remainingdays";
public static final int COL_REMAINING_DAYS = 10;
private static final String DATABASE_CREATE_MY_SQL =
"create table " + MY_TABLE
+ " (" + KEY_ROW_ID + " integer primary key autoincrement, "
+ KEY_TAG + " text not null, "
+ KEY_TITLE + " text not null, "
+ KEY_DATE + " text not null, "
+ KEY_LOCATION + " text not null, "
+ KEY_REMAINING_DAYS + " text not null, "
+ ");";
public void update_days() {
String where = "UPDATE "+ MY_TABLE +" SET " + COL_REMAINING_DAYS + " = " + COL_REMAINING_DAYS-1);
db.rawQuery(where, null);
}
-1
должен быть SQL, например:
public void update_days() {
String where = "UPDATE "+ MY_TABLE +" SET " + KEY_REMAINING_DAYS + " = " + KEY_REMAINING_DAYS + "-1" );
db.rawQuery(where, null);
}
Так что итоговый запрос:
UPDATE <MY_TABLE>
SET <KEY_REMAINING_DAYS> = <KEY_REMAINING_DAYS> -1;
Что касается "обновления по времени", вы делаете это в ежедневной тревоге или можете проверить, когда это было сделано последним при входе в приложение. Найдите похожие вопросы, касающиеся AlarmManager
на этом сайте.