English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
複数のデータベースが利用可能で、そのうちの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> DATABASE 'testDB.db' ATTACH AS 'TEMP'; エラー: データベース TEMP は既に使用されています sqlite> DATABASE 'testDB.db' ATTACH AS 'main'; エラー: データベース TEMP は既に使用されています