SQLite-ATTACHデータベース
複数のデータベースが利用可能で、それらのいずれかを一度に使用したい場合を考えてみます。SQLiteATTACH DATABASE ステートメントは特定のデータベースを選択するために使用され、このコマンドの後、すべてのSQLiteステートメントは接続されたデータベースの下で実行されます。
構文
以下は、SQLite ATTACHDATABASEステートメントの基本的な構文です。
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
上記のコマンドは、データベースがまだ作成されていない場合にもデータベースを作成します。それ以外の場合は、データベースファイル名を論理データベース「Alias-Name」に添付するだけです。
例
既存のデータベースを添付する場合 testDB.dbの場合、ATTACHDATABASEステートメントは次のようになります-
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