接続中のデータベースの確認
データベースに接続している時に、現在接続しているデータベース名とそのデータベースが保存されているファイル名を取得するにはSQLiteコマンドの「.databases」を使います。
.databases
では実際に試してみます。「d:\sqlite\db\db1.sqlite3」データベースに接続します。
「.databases」と入力します。すると次のように出力されます。
seq name file --- --------------- ------------------------------------------ 0 main d:\sqlite\db\db1.sqlite3
今回は1つしか表示されていませんが、データベースをアタッチしていたりテンポラリデータベースがある場合は複数行表示されます。「seq」は単なる番号です。「name」の値がデータベース名です。そして「file」の値がデータベースが格納されているファイル名です。
データベースに接続すると、そのデータベース名は「main」となります。データベース名としては今までデータベースを格納しているファイル名のことをデータベース名と呼んでいたので分かりにくいですが、「main」はテーブル名やカラム名などと同じくSQL文でデータベース名を指定する必要がある場合に使用される名前です。
コマンドプロンプトから「sqlite3 データベース名」で接続したデータベースに対し、自動的に「main」というデータベース名が割り当てられます。逆にデータベース名が「main」のものが接続しているデータベースです。
アタッチされたデータベースがある場合
では他のデータベースをアタッチしてみます。アタッチについてはここでは解説しませんが、メインのデータベースに他のデータベースを追加して扱う為に使用します。
アタッチするデータベースファイル名と、アタッチしたデータベースの名前を指定しています。最初に接続したデータベースのデータベース名は自動的に「main」となりますが、データベースをアタッチする場合はデータベース名を指定します。
では再度「.databases」と入力して下さい。
今度は「main」のデータベース以外にアタッチされたデータベースに関しても表示されます。なおアタッチされたデータベースは「seq」が2から順に割り当てられます。「seq」の1はテンポラリデータベースがある場合に割り当てられます。