SQLite-ATTACHデータベース

複数のデータベースが使用可能で、一度にいずれか1つのデータベースを使用する場合を考えてください。 SQLite ATTACH DATABASE ステートメントは特定のデータベースを選択するために使用され、このコマンドの後、すべてのSQLiteステートメントは接続されたデータベースの下で実行されます。

構文

以下は、SQLite ATTACH DATABASEステートメントの基本的な構文です。

ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

上記のコマンドは、データベースがまだ作成されていない場合にもデータベースを作成します。それ以外の場合、データベースファイル名を論理データベース「エイリアス名」に添付します。

既存のデータベース testDB.db をアタッチする場合、ATTACH DATABASEステートメントは次のようになります-

sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';

SQLite .database コマンドを使用して、接続されたデータベースを表示します。

sqlite> .database
seq  name             file
---  ---------------  ----------------------
0    main            /home/sqlite/testDB.db
2    test            /home/sqlite/testDB.db

データベース名 main および temp は、一時データベースおよびその他の一時データオブジェクトを保持するプライマリデータベースおよびデータベース用に予約されています。 これらのデータベース名は両方のデータベース接続に存在するため、接続には使用しないでください。そうしないと、次の警告メッセージが表示されます。

sqlite> ATTACH DATABASE 'testDB.db' as 'TEMP';
Error: database TEMP is already in use
sqlite> ATTACH DATABASE 'testDB.db' as 'main';
Error: database TEMP is already in use