Androidでインメモリデータベースを作成しました。SQLiteOpenHelperコンストラクターのnameパラメーターにnullを入れました。
SQLiteOpenHelper(context, null, null, 1);
また、インメモリデータベースにいくつかのdoc_orders_productsテーブルを作成しました。
現在、このインメモリデータベースをメインのオンディスクデータベースに接続しようとしています。ATTACHコマンドで使用するインメモリデータベースの名前は何ですか?
私は試した:
mainDB.execSQL("ATTACH DATABASE ':memory:' AS temp_db");
と
mainDB.execSQL("ATTACH DATABASE '' AS temp_db");
インメモリデータベースがまったく作成されていない場合でも、両方のATTACHコマンドは適切に機能します。しかし、インメモリデータベースのテーブルにアクセスしようとすると、テーブルが存在しません。例外が発生します。例えば:
10-11 14:07:46.782: E/AndroidRuntime(2107): Caused by:
android.database.sqlite.SQLiteException: no such table:
temp_db.doc_orders_products (code 1): , while compiling:
INSERT INTO temp_db.doc_orders_products SELECT * FROM
main.doc_orders_products WHERE doc_id=3
インメモリデータベースをオンディスクデータベースに接続することは可能ですか?それを行う正しい方法は何ですか?
ありがとう。