PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menyegarkan tampilan yang terwujud tidak termasuk kolom tambahan

SELECT * diperluas pada waktu eksekusi, sama seperti semua operasi serupa (CREATE VIEW , CREATE TABLE AS )

Kata kuncinya adalah "pengikatan awal" sebagai lawan dari "pengikatan akhir". Postgres menyimpan daftar kolom yang ada pada waktu eksekusi SELECT * , kolom yang ditambahkan kemudian adalah bukan disertakan secara otomatis. string kueri itu sendiri tidak disimpan, hanya representasi internal setelah memperluas SELECT * dan hal-hal lain seperti menyelesaikan semua pengenal.

REFRESH MATERIALIZED VIEW tidak pernah mengubah definisi data, hanya data:

Manual bisa lebih eksplisit tentang hal itu, tetapi perbandingan dengan perilaku dari CREATE TABLE AS membuatnya jelas bagi saya:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Trunc() Bekerja di PostgreSQL

  2. PostgreSQL mengonversi nama bulan menjadi angka

  3. Bagaimana cara melakukan agregasi yang sama pada setiap kolom, tanpa mencantumkan kolom?

  4. Desain database temporal, dengan twist (live vs draft rows)

  5. Bagaimana cara menulis DELETE CASCADE untuk postgres?