0

私は現在、かなり大きな XML ファイルを SQL にインポートする必要がある Android アプリを開発しています。以前は、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 マシンで期待どおりに動作しました。ただし、About の挿入のみが機能する私の Android Phone では機能しません。また、正しい方向に私を向ける可能性のあるエラーはありません。Collection エントリは単純に無視され、ネストされたクエリと関係があると思いますが、それを修正する方法がわかりません。

アイデアや提案はありますか?

4

1 に答える 1

0

AnINSERTは黙って失敗しません。SQL コマンドを実行するコードは、どこかでエラーを無視しています。

とにかく、子レコードが 1 つしかない限り、サブクエリをlast_insert_rowid().

または、 を試してください(SELECT max(rowid) FROM About)

于 2013-01-17T12:42:06.187 に答える