SQLiteで複数DBへの同時接続
SQLiteのデータベースファイルhoge.dbに含まれているテーブルhogehogeと、fuga.dbに含まれているテーブルfugafugaとを結合した結果を得たいような場合。
C:\sqlite_data>sqlite3.exe hoge.db ⇒ まず、hoge.dbに接続する(別にfuga.dbでもいいのですが)
sqlite> attach database "fuga.db" as fuga ⇒ fuga.dbをfugaという名前で接続。
sqlite> select hogehoge.*, fugafuga.* from hogehoge, fuga.fugafuga fugafuga where hogehoge.keyfield=fugafuga.keyfield ⇒ keyfieldという列の値で2つのテーブルを連結。
ってな感じ。
attachするときに注意しなければならないのは、".db"のような感じでデータベースファイルに"."を含んでいる場合、ファイル名をシングルクォーテーションあるいはダブルクォーテーションで囲まなければならない点。忘れた場合、SQL error: no such column:が発生します。
「DB」カテゴリの記事
- PostgreSQL全機能バイブル(2012.11.17)
- I/Oバリア機能(2012.05.30)
- PostgreSQL9.1.3のストリーミングレプリケーション(2012.05.29)
- DB処理に特化したサーバー(2011.02.16)
- DB2のアクティブログ(2010.04.08)
Comments