sql >> Databáze >  >> RDS >> PostgreSQL

Obnovení materializovaného pohledu nezahrnuje přidaný sloupec

SELECT * se rozšiřuje v době provádění, stejně jako u všech podobných operací (CREATE VIEW , CREATE TABLE AS )

Klíčovým slovem je „časná vazba“ na rozdíl od „pozdní vazby“. Postgres ukládá seznam sloupců přítomných v době provádění SELECT * , později přidané sloupce nejsou zahrnuto automaticky. řetězec dotazu sám se neuloží, pouze vnitřní reprezentace po rozbalení SELECT * a další věci, jako je vyřešení všech identifikátorů.

REFRESH MATERIALIZED VIEW nikdy změní definici dat, pouze data:

Manuál by o tom mohl být explicitnější, ale srovnání s chováním z CREATE TABLE AS objasnil mi to:




  1. Jak vrátit zpět své změny DB po potvrzení?

  2. Jak provést JOIN ze dvou různých sloupců do stejného sloupce v samostatné tabulce

  3. Získejte rozdíl mezi datem

  4. Heroku - výpis a načtení jedné tabulky do sdílené postgresové databáze