PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Odświeżenie zmaterializowanego widoku nie obejmuje dodanej kolumny

SELECT * jest rozwijany w czasie wykonywania, tak jak w przypadku wszystkich podobnych operacji (CREATE VIEW , CREATE TABLE AS )

Kluczowym słowem jest „wczesne wiązanie” w przeciwieństwie do „późnego wiązania”. Postgres zapisuje listę kolumn obecnych w czasie wykonywania SELECT * , kolumny dodane później nie dołączane automatycznie. ciąg zapytania sam nie jest zapisywany, tylko wewnętrzna reprezentacja po rozwijanie SELECT * i inne rzeczy, takie jak rozwiązywanie wszystkich identyfikatorów.

REFRESH MATERIALIZED VIEW nigdy zmienia definicję danych, tylko dane:

Podręcznik mógłby być bardziej jednoznaczny, ale porównanie z zachowaniem z CREATE TABLE AS wyjaśnił mi to:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak automatycznie zwiększyć wartość alfanumeryczną w postgresql?

  2. Migracja Django 1.8 nie może przerzucić id kolumny na liczbę całkowitą

  3. Czy jest jakiś skrót do korzystania z dblink w Postgresie?

  4. Dlaczego jeden identyfikator w CREATE TABLE jest ujęty w cudzysłów, a pozostałe nie?

  5. Ograniczenia dotyczące zmian schematu PostgreSQL w transakcjach?