0

我目前正在开发一个 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 手机,只有 About 插入工作。也没有错误,这可以为我指明正确的方向。Collection 条目被简单地忽略了,我猜它与嵌套查询有关,但我不知道如何解决这个问题。

有什么想法或建议吗?

4

1 回答 1

0

AnINSERT不会默默地失败;您执行 SQL 命令的代码忽略了某处的错误。

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

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

于 2013-01-17T12:42:06.187 回答