インデックススキーマ(構造)の確認

広告

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

1.sqlite_masterテーブルから取得
2..schemaコマンドを使って取得

それでは実際に試してみます。次のようなSQL文を実行して下さい。

select * from sqlite_master;

p4-1

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

sqlite> select * from sqlite_master where type = 'index';
    type = index
    name = nameindex
tbl_name = user
rootpage = 4
     sql = CREATE UNIQUE INDEX nameindex on user(name)
sqlite>

「name」カラムにはインデックスの名前、「tbl_name」カラムには作成されているテーブル名、そして「sql」カラムにはインデックスが作成された時のSQL文が格納されています。このように「sqlite_master」テーブルを参照することでインデックスやテーブルなどがどのように作成されたのかを確認することができます。

なおインデックスに関するデータだけを取得したい場合にはWHERE句を使って次のように実行されて下さい。

select * from sqlite_master where type = 'index';

p4-2

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

.schema
.schema ?TABLE?

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

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

p4-3

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

( Written by Tatsuo Ikura )