Android SQLite复杂INSERT无法按预期工作

时间:2013-01-17 11:12:23

标签: android sqlite insert nested

我目前正在开发一个Android应用程序,我必须将相当大的XML文件导入SQL。以前我对XML中的每个元素都有一个INSERT。现在我尝试创建一个导入的临时SQL文件,因为这样会快很多。由于数据是动态的,我有一些这样的陈述:

INSERT INTO About VALUES ('System Karteikasten', '', '[todo]', '[todo]', '[todo]', '[todo]', 'null');
INSERT INTO Collection (Collection_id, About_id, MediaFile_Id, type, isbn, releasedate, publisher, edition, description, priv_sortChilds, priv_createChild, priv_deleteChild, priv_insertChild) VALUES ('system_kalepro_main', (SELECT ROWID FROM About ORDER BY ROWID DESC LIMIT 1), 'null', 'CARDBOX', 'null', '0', 'null', 'null', 'Some Text', 'false', 'false', 'false', 'false');

有时我喜欢这些群体中的1000个。正如您可能已经从SQL中猜到的那样,Collection中有一个外键:About_id指向About的ROWID。我已经测试了整个代码,一切都像linux机器上预期的那样工作。但是它不在我的Android手机上,只有关于插入的工作。也没有错误,这可能指向正确的方向。 Collection条目被忽略了,我想它与嵌套查询有关,但我无法弄清楚如何解决这个问题。

任何想法或建议?

1 个答案:

答案 0 :(得分:0)

INSERT没有默默地失败;执行SQL命令的代码忽略了某处的错误。

无论如何,只要您的子记录不超过一个,就可以用last_insert_rowid()替换子查询。

或者,尝试(SELECT max(rowid) FROM About)