SELECT *
同様のすべての操作と同様に、実行時に展開されます( CREATE VIEW
、 CREATE TABLE AS
)
キーワードは「遅延バインディング」ではなく「早期バインディング」です。 Postgresは、SELECT *
の実行時に存在する列のリストを保存します 、後で追加される列はではありません 自動的に含まれます。 クエリ文字列 それ自体は保存されず、後の内部表現のみが保存されます。 SELECT *
を展開します およびすべての識別子の解決などの他のもの。
REFRESH MATERIALIZED VIEW
決して データ定義を変更します。データのみを変更します:
マニュアルはそれについてより明確にすることができますが、動作との比較CREATE TABLE AS
の
私にそれを明らかにしました: