less than 1 minute read

SQLiteは1ファイルが1データベースに対応する。このデータベースの中では、すべてのテーブルが同じ名前空間に属し、他のDBエンジンが持つスキーマのような概念はないらしい。

が、attachという構文があり、別のDBファイルを1つのセッションの中で利用できる。これを使うと、テーブルの用途ごとに異なるデータベースに分けて保存することができてスッキリする。

こんな感じで使うことができる。

sqlite> attach database '別のDBへのパス' as 'other_db';
sqlite> select * from other_db.some_table;

link

自分は、pythonからsqliteを使うことが多いが、例えば以下のような関数を定義しておけば、便利である。

import sqlite3

def connect():
    path1 = "/path/to/db1"
    path2 = "/path/to/db2"
    con = sqlite3.connect(path1)
    con.execute(f"attach database '{path2}' as 'other'")
    return con

タグ:

カテゴリー:

更新日時: