SQLite 没有主数据库?
SQLite without main database?
我们有几对相互关联的数据库,即
- db1a 和 db1b
- db2a 和 db2b
- db3a 和 db3b
- 等等
db1a 和 db1b、2a 和 2b 等之间存在跨数据库连接
打开 sqlite 数据库连接,可以附加它们,即
ATTACH 'db1a' as a; ATTACH 'db1b' as b;
并在需要时拆下并替换为其他对。
数据库"connection"应该如何创建,但是,因为最初没有真正的数据库可以附加?使用第一个作为主数据库赋予它更多的意义,这是没有意义的 - 因为它是不可分离的,所以它在以后是一个障碍。
我能看到的唯一方法是打开 :memory:
或临时 (''
) 数据库连接。有更好的选择吗?
在没有更好选择的情况下,:memory:
是最好的选择。 (:temp:
是普通文件名,在许多操作系统中无效;临时数据库将有一个空文件名。)
如果您有一些列出所有其他数据库的元数据库,您可以使用它。
请注意,当您有多个附加数据库时,对其中一个的任何更改都将涉及 multi-database 事务。
所以如果各个数据库对与其他不同编号的数据库没有任何关系,可以考虑为每个对使用一个新的连接。
我们有几对相互关联的数据库,即
- db1a 和 db1b
- db2a 和 db2b
- db3a 和 db3b
- 等等
db1a 和 db1b、2a 和 2b 等之间存在跨数据库连接
打开 sqlite 数据库连接,可以附加它们,即
ATTACH 'db1a' as a; ATTACH 'db1b' as b;
并在需要时拆下并替换为其他对。
数据库"connection"应该如何创建,但是,因为最初没有真正的数据库可以附加?使用第一个作为主数据库赋予它更多的意义,这是没有意义的 - 因为它是不可分离的,所以它在以后是一个障碍。
我能看到的唯一方法是打开 :memory:
或临时 (''
) 数据库连接。有更好的选择吗?
在没有更好选择的情况下,:memory:
是最好的选择。 (:temp:
是普通文件名,在许多操作系统中无效;临时数据库将有一个空文件名。)
如果您有一些列出所有其他数据库的元数据库,您可以使用它。
请注意,当您有多个附加数据库时,对其中一个的任何更改都将涉及 multi-database 事务。 所以如果各个数据库对与其他不同编号的数据库没有任何关系,可以考虑为每个对使用一个新的连接。