インデックススキーマ(構造)を確認する
SQLite で作成済のインデックスがどのような CREATE INDEX 文を使って作成されたのかについて確認する方法について解説します。sqlite_master テーブルを利用する方法と .schema コマンドを使用する方法の2つの方法があります。
(Last modified: )
sqlite_masterテーブルから取得する
最初に sqlite_master テーブルから取得する方法です。次のような SQL 文を実行して下さい。
select * from sqlite_master;
作成済のテーブルやインデックスに関するデータが取得できます。今回取得したデータの中でインデックスに関するデータは次のものです。
type = index name = nameindex tbl_name = user rootpage = 3 sql = CREATE UNIQUE INDEX nameindex on user(name)
type カラムにはインデックスの場合は index と表示されます(テーブルの場合は table です)。 name カラムにはインデックス名、 tbl_name カラムにはインデックスの対象のテーブル名、 sql カラムにはインデックスを作成した時の SQL 文が表示されます。
インデックスに関するデータだけを表示するには、 WHERE 句を使い次のように実行します。
select * from sqlite_master where type = 'index';
.schemaコマンドを使って取得する
スキーマに関する情報だけ取得したい場合には SQLite コマンドの .schema でも確認できます。
.schema
.schema ?TABLE?
引数を省略すれば全てのテーブルやインデックスのスキーマ情報を表示します。また引数にテーブル名を指定すると、インデックス名に一致するテーブルや指定したテーブル名を対象としたインデックスだけのスキーマ情報を表示することができます。
では実際に試してみます。
.schema
現在作成されているテーブルおよびインデックスに関する CREATE 文が表示されました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。