我想了解ATTACHED sqlite数据库的多线程访问所涉及的问题。显而易见的是,一个SQLiteOpenHelper
确保一个数据库连接,从而确保对数据库的一个序列化访问。当一个'子'数据库连接两次时,在两个不同的'父'SQLiteOpenHelper
s /两个不同的父数据库连接下会发生什么?
Q1:如何序列化对附加子数据库的访问?
Q2:在这种情况下如何实现提前写入记录?
要清楚,这就是我所描述的情景:
ASQLiteOpenHelper instanceA = new ASQLiteOpenHelper( context, dbnameA, null, version);
BSQLiteOpenHelper instanceB = new BSQLiteOpenHelper( context, dbnameB, null, version);
instanceA.getWritableDatabase().execSQL( "ATTACH '" + dbnameChild + "' AS child" );
instanceB.getWritableDatabase().execSQL( "ATTACH '" + dbnameChild + "' AS child" );
通过instanceA
和instanceB
同时安全地写'孩子'吗?读书怎么样?如果为父级启用了writeahead日志记录,是否也为子级启用了?如果是,是为child
创建的两个单独的预写日志记录日志吗?