我正在开发一些应用程序(遗留代码),它基本上会扫描设备中的歌曲并提供浏览功能。
现在,为了提高某些功能的性能,要求是使用3个数据库,如下所示,带有角色:
我正在使用 sqlite3 ,我正在打开一个数据库会话并附加其他两个数据库。
现在,如果您在没有附加别名的情况下触发SQL查询,请说SELECT * FROM songs;
,它会选择别名为 main 的数据库。
旧版浏览器模块具有所有类似的SQL查询(未附加数据库别名,我无法更改它们,因此他们将继续使用别名为main
的数据库。
解决方案是在需要时将别名main
更改为适当的数据库。
我的问题是:
答案 0 :(得分:2)
无法更改已连接数据库的数据库名称(包括main
)。
然而,documentation说:
如果不同数据库中的两个或多个表具有相同的名称且未在表引用上使用database-name前缀,则所选表是数据库中最近最少附加的表。
所以你可以做的是打开一些空数据库作为主数据库(只需使用:memory:
),并按所需顺序连接其他三个数据库。