SQLite插入或替换在Android之外但在代码中不起作用?

时间:2013-12-06 09:03:21

标签: android sqlite

我有一个类似于这样的插入或替换命令:

INSERT or REPLACE INTO author(id,bookId,name) values((SELECT id FROM author WHERE bookId='4'),'4','Book Title')

基本上,如果存在与bookId对齐的id,它会替换一行。如果没有id,则插入。

我正在使用名为“SQLite数据库浏览器2.0”的应用程序在我的应用程序中的相同数据库表上测试我的SQLite命令(我正在从模拟器导出数据库)。上面的命令就像数据库浏览器中的一个魅力,但应用程序没有插入或替换(现在它应该插入,因为表是空的)。

我知道我的SQLite命令是正确的,我的Logcat中没有任何错误。

我错过了Android需要执行此命令吗?

1 个答案:

答案 0 :(得分:0)

基于问题评论,问题是rawQuery()只编译您传入的SQL但不执行它。要执行使用rawQuery()编译的SQL,您通常会在返回的moveTo...()上发出Cursor次调用之一。

在这种情况下,要编译和执行SQL,请使用execSQL()