没有主数据库的SQLite?
问题描述:
我们有几个对数据库是相互关联的,即没有主数据库的SQLite?
- db1a和db1b
- db2a和db2b
- db3a和db3b
- 等
那里有db1a和db1b,2a和2b之间的交叉db关节等。
打开sqlite数据库它们可以被连接,即,它们可以被连接,即,
ATTACH 'db1a' as a; ATTACH 'db1b' as b;
并且随后被分离并且在需要时被其他对替换。
但是,应该如何创建数据库“连接”,因为最初没有真正的数据库要连接到?使用第一个数据库作为主数据库会给它更重要的意义,这是没有意义的 - 因为它不可拆卸,所以稍后会有障碍。
我能看到的唯一方法是打开:memory:
或临时(''
)数据库连接。有更好的选择吗?
答
在没有更好的选择的情况下,:memory:
是最好的选择。 (:temp:
是一个正常的文件名,在许多操作系统中无效;临时数据库将具有空文件名。)
如果您有一些元数据库列出所有其他数据库,则可以使用该数据库。
请注意,当您有多个连接的数据库时,对其中一个数据库的任何更改都将涉及多数据库事务。 因此,如果各种数据库对与其他数据库的编号不相关,请考虑为每对数据库使用一个新连接。
感谢您指出:temp:glitch - 我的意思是临时数据库。是否有理由更改单个数据库会导致多数据库事务? – Eiko
在交易开始时,数据库不知道您是否会对其他交易进行更改。在任何情况下,都必须锁定以保持原子性。 –