Я пишу приложение для Android, которое загружает список лидеров игр через определенные промежутки времени.Результаты хранятся в базе данных.Чтобы сохранить загрузку отдельно от текущих результатов, я загружаю в одну таблицу, а затем копирую в другую.Таблица лидеров хранит текущий рейтинг и предыдущий рейтинг.Перед копированием загруженной версии в текущую версию я обновляю предыдущий рейтинг с текущей, то есть:
mDb.execSQL(
"update " + mTableName + " set last_rank = rank, last_world = world;");
Затем я выбираю соответствующие столбцы из таблицы загрузки и заменяю в текущую таблицу:
mDb.execSQL(
"replace into " + mTableName + " (world, _id, victories, owned_regions, rank,
clan_name) select world, _id, victories, owned_regions, rank, clan_name
from " + mTableName + "_dl;");
Если я получу копию базы данных после обновления, но перед заменой, а затем выполню запрос на замену, внешний по отношению к Android (я использую SQLite Expert для своих тестов), тогда я получу ожидаемые результаты - поля last_rank и last_worldсохраняется, но если я выполню запрос в Android, то все поля таблицы _dl будут скопированы, а last_rank и last_world будут перезаписаны значениями по умолчанию.Это ошибка в реализации Android SQLite или я делаю что-то очень неправильное?
Буду признателен за любую помощь.Спасибо.