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構文もサポートしている。
以上
コメントがあればどうぞ