ORマッパーを作成して、

INDEXの存在確認方法を調べたのでまとめておきます。

 

【PostgreSQL】

select indexname from pg_indexes where tablename = ‘テーブル名’;

 

【MySQL・MariaDB】

SELECT INDEX_NAME FROM information_schema.STATISTICS WHERE table_name = ‘テーブル名’;

→whereに「TABLE_SCHEMA」を追加すれば、データベース名も条件に加えられる。

 

【SQLite3】

select name From sqlite_master where type = ‘index’;

→インデックス名の一覧がとれるから、そこから検索すればよい。

 

【H2】

select index_name from information_schema.indexes where table_name = ‘テーブル名;

→大文字小文字を区別している場合、テーブル名は大文字にする必要がある。

→大文字小文字を区別している場合、結果セットは大文字になるので、注意する。

→CREATE INDEX IF NOT EXISTS index_name ON table_name (column_name1, column_name2);

という形で、IF NOT EXISTS構文もサポートしている。

 

以上

コメントがあればどうぞ


CAPTCHA Image
Reload Image