現在、データ ウェアハウス内のすべてのスキーマのテーブルにインデックスを作成する関数を作成しようとしています。これは私がこれまで持っているスクリプトです:
create or replace function dwh.loan_type_id_indexing()
returns void language plpgsql AS
$PROC$
Declare
       myschema varchar;
               sql text;        
Begin 
    for myschema in 
        SELECT nspname
          FROM pg_catalog.pg_namespace 
         where nspname not in ('information_schema', 'pg_catalog', 'pg_temp_1',
                               'pg_temp_7', 'pg_toast', 'pg_toast_temp_1',
                               'pg_toast_temp_7','public', 'c1', 'dwh',
                               'users', 'c2'
                              )
         order by nspname
    loop        
        sql = 'CREATE INDEX '|| myschema || '_' ||'type_id ON '|| 
        myschema || '.' ||'.fact_tbl USING btree (loan_type_id)';
        execute sql;
    end loop;
END
$PROC$
volatile;
これが正しくないことはわかっていますが、私がやろうとしていることについての私の思考プロセスを説明します.