インデックススキーマ(構造)を確認する

広告
eyecatch

作成済のインデックスがどのような CREATE INDEX 文を使って作成されたのかについて確認する方法について解説します。sqlite_master テーブルを利用する方法と .schema コマンドを使用する方法の2つの方法があります。

sqlite_masterテーブルから取得する

最初に sqlite_master テーブルから取得する方法です。次のような SQL 文を実行して下さい。

select * from sqlite_master;

sqlite_masterテーブルから取得する(1)

作成済のテーブルやインデックスに関するデータが取得できます。今回取得したデータの中でインデックスに関するデータは次のものです。

    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';

sqlite_masterテーブルから取得する(2)

.schemaコマンドを使って取得する

スキーマに関する情報だけ取得したい場合には SQLite コマンドの .schema でも確認できます。

.schema
.schema ?TABLE?

引数を省略すれば全てのテーブルやインデックスのスキーマ情報を表示します。また引数にテーブル名を指定すると、インデックス名に一致するテーブルや指定したテーブル名を対象としたインデックスだけのスキーマ情報を表示することができます。

では実際に試してみます。

.schema

.schemaコマンドを使って取得する(1)

現在作成されているテーブルおよびインデックスに関する CREATE 文が表示されました。

SQLite入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。