2017-08-31 5 views
1

にインデックスの存在の確認私はインデックスPosgreSQL

CREATE INDEX ix_dsvtable 
    ON public."DsVTable" 
    USING btree 
    (dind, sec, regind, datind); 

とインデックスがすでに存在する場合はどのように私は確認することができますを作成する方法を知っていますか?

まだ存在していない場合は、その存在を確認して作成する必要があります。

+1

'インデックスが存在しない場合は作成... ' –

答えて

1

あなたはこのクエリを使用したインデックスのリスト、彼らのテーブルと列を取得することができます。

select 
    t.relname as table_name, 
    i.relname as index_name, 
    a.attname as column_name 
from 
    pg_class t, 
    pg_class i, 
    pg_index ix, 
    pg_attribute a 
where 
    t.oid = ix.indrelid 
    and i.oid = ix.indexrelid 
    and a.attrelid = t.oid 
    and a.attnum = ANY(ix.indkey) 
    and t.relkind = 'r' 
    -- and t.relname like 'mytable' 
order by 
    t.relname, 
    i.relname; 

そこから、あなたはインデックス名または関与列(複数可)で存在することを確認し、作成することを決定/スキップすることができますインデックス。

関連する問題