データを保存するためにsqliteを使用しています。私は2つのデータベースを持っています。私のアプリケーションでは、新しいリクエストが来るたびに、最初のデータベースを2番目のデータベースにアタッチしています。問題は、2つのリクエストが来ると、すでに使用中のdbが表示されていることです(同じエイリアス名「db」で2回アタッチしようとしています)。データベースが接続されているかどうかを確認する方法があるかどうか知りたいですか?
質問する
3488 次
2 に答える
6
PRAGMA database_list;
使用可能なデータベースの完全なリストを含む結果セットを出力します。最初の列はデータベース名、2番目の列はデータベースファイルです(ファイルに関連付けられていない場合は空です)。プライマリデータベースには常に名前が付けられ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
データベースへの同じ接続を複数のリクエストに再利用していると思います。データベースは接続オブジェクトに接続されているため、同じ接続で2回目以降の要求の接続は失敗します。したがって、私が考える解決策は、要求を受信するたびではなく、新しい接続が確立された直後にデータベースを接続することです。
于 2012-08-17T09:01:59.493 に答える