Postgresでマテリアライズドビューの定義をクエリする方法を疑問に思っています。参考までに、私がやりたいことは、通常のビューでできることと非常に似ています。
SELECT * FROM information_schema.views WHERE table_name = 'some_view';
次の列が表示されます。
table_catalog
table_schema
table_name
view_definition
check_option
is_updatable
is_insertable_into
is_trigger_updatable
is_trigger_deletable
is_trigger_insertable_into
マテリアライズドビューでこれは可能ですか?
これまでの私の調査から、マテリアライズドビューはinformation_schemaから意図的に除外されているようです。
information_schemaは、SQL標準に存在するオブジェクトのみを表示できます。
(http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us)
それらはinformation_schemaから完全に除外されているように見えるので、私はこれについてどうするかわかりませんが、私がやりたいことは2つあります:
- 特定のマテリアライズドビューが存在するかどうかを照会します。(これまでのところ、これを行うことがわかった唯一の方法は、同じ名前のマットビューを作成し、それが爆発するかどうかを確認することです。)
- 次に、マテリアライズドビューの定義を照会します(
view_definition
上の列と同様information_schema.views
)。
SELECT to_regclass('some_schema.some_mat_view')
見つかった場合、MVである必要はありません。詳細:stackoverflow.com/questions/20582500/...