0
我正在编写Android应用程序,以频繁的间隔下载游戏排行榜。结果存储在数据库中。为了保持下载与实况结果分开,我下载到一个表中,然后复制到另一个表。排行榜表格存储当前的排名和之前的排名。复制下载的版本到真人版之前,我更新以前的评级从目前的即:在Android中使用“替换”的意外SQL查询结果
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都是过度的,用tehir默认值编写。这是Android SQLite实现中的错误还是我做错了什么?
任何帮助,将不胜感激。谢谢。