我正在使用sqlite来存储我的数据。我有两个数据库。在我的应用程序中,每次新请求到来时,我都会将第一个db附加到第二个db。问题是,如果有两个请求,它显示已经在使用的数据库(它尝试使用相同的别名'db'连接两次)。我想知道是否有办法检查是否附加了数据库?
答案 0 :(得分:4)
PRAGMA database_list;
输出带有完整可用数据库列表的结果集。第一列是数据库名称,第二列是数据库文件(如果它不与文件关联,则为空)。主数据库始终命名为main
,临时数据库始终为temp
。
sqlite> attach "foo.db" as foo;
sqlite> pragma database_list;
0|main|
2|foo|/Users/me/tmp/foo.db
答案 1 :(得分:2)
我假设您正在为多个请求重用与数据库相同的连接。由于数据库对连接对象是attached,因此对于具有相同连接的第二个或更多请求,附加失败。我认为解决方案是在建立新连接后立即附加数据库,而不是每次都收到请求。