2011-12-31 4 views
1

私はファイルを管理するデータベースを持っています。複数の理由は、別々のドライブ(USBドライブと考える)に住んでいるからです。私は、すべてのドライブ上のファイルに適用されるクエリを書きたいと思います。問題は、別のデータベース(使用されている)で再作成するという見解を取り下げることができないということです。したがって、データベースのそれぞれに同じ名前のすべてのテーブルを結合するビューを.databasesから作成する方法があるのだろうかと思いましたか?この方法では、新しいデータベースが接続されている場合、私はビューを停止する必要はありません。すべてのデータベースを結合するSQLiteビューを作成できますか?

おそらく最も近い答えとして、ATTACHにトリガを書き込んで、トリガでビューを再作成することができます(ダウンタイムを最小限に抑えるため)。

+0

"ビューをテイクダウンする"という意味を定義してください。 –

+0

意味、それを削除するか、変更する必要があります。どちらの場合でも、テーブルは一定期間使用できなくなります。 – chacham15

答えて

0

SQLiteは私が知っている「添付」トリガーをサポートしておらず、削除、挿入、および更新のみをサポートしています。

おそらくあなたのやりたいことは、あなた自身のプログラムではなく、SQLite自体の中で行うのが最善です。あなたは、いつでもあなたが自分のコードでビューを変更することができないため、ビューを手動で削除して再作成することができます。もちろん、これはロックを必要とするでしょう(あなたが言ったようにテーブルを使用できなくする)が、SQLiteがあなたのために仕事をしていたとしてもそれはおそらく必要でしょう。

どちらの方法でも、ビューの作成は非常に高速なので、プログラムのパフォーマンスに影響を与えてはいけません。

関連する問題