2011-11-25 65 views
1

我需要在我的android应用程序中的SQLite数据库上执行“就地”更新SQL查询。该查询是以下形式:“在原地”更新Android SQLite数据库不与rawQuery工作

更新表T的一组列=柱+ 1其中someOtherColumn =安勤

我试图与SQLiteDatabase.rawQuery(updateQuery, "someOtherColumn = ?", new String{}[aValue])执行这个查询,但我发现,列不递增。当我用通常的SQLiteDatabase.update(...)运行相同的查询时,它可以正常工作,但这需要我获取旧列值,在外部更新它,然后执行update(),这可能效率较低,因为它需要选择然后更新。

有什么方法可以使用第一个查询更新“到位”吗?

谢谢。

回答

2

有什么方法可以通过使用第一个查询更新“到位”吗?

这不是查询。这是一个UPDATE声明。它不返回结果集。与execSQL()一起使用,而不是rawQuery()

但是这需要我去取旧列值,外界对其进行更新,然后执行更新(),这可能是低效率的,因为它需要一个选择,然后更新

这是正路所有的SQL数据库工作。现在,那些提供存储过程的程序可以允许您在一个请求中执行UPDATESELECT,但它仍然是UPDATESELECT。此外,SQLite不支持存储过程,至少在我上次查看时。