4

我正在使用 sqlite 来存储我的数据。我有两个数据库。在我的应用程序中,每次出现新请求时,我都会将第一个数据库附加到第二个数据库。问题是,如果有两个请求出现,则显示该数据库已在使用中(它试图使用相同的别名“db”附加两次)。我想知道是否有任何方法可以检查是否附加了数据库?

4

2 回答 2

6
PRAGMA database_list;

输出一个包含可用数据库完整列表的结果集。第一列是数据库名称,第二列是数据库文件(如果与文件无关,则为空)。主数据库总是被命名main,临时数据库总是被命名temp

sqlite> attach "foo.db" as foo;
sqlite> pragma database_list;
0|main|
2|foo|/Users/me/tmp/foo.db
于 2012-08-17T09:12:31.520 回答
2

我假设您正在为多个请求重用与数据库的相同连接。由于数据库附加到连接对象,因此对于具有相同连接的第二个或更多请求,附加失败。因此,我认为的解决方案是在建立新连接后立即附加数据库,而不是每次收到请求时。

于 2012-08-17T09:01:59.493 回答