CREATE VIEW - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CREATE VIEW

Membuat tampilan dalam database. Tampilan tidak terwujud secara fisik; kueri yang mendefinisikan tampilan dijalankan setiap kali tampilan direferensikan dalam kueri. Untuk membuat tampilan dengan tabel eksternal, sertakan SCHEMA BINDING klausa WITH NO.

Untuk membuat tampilan standar, Anda memerlukan akses ke tabel yang mendasarinya, atau ke tampilan yang mendasarinya. Untuk menanyakan tampilan standar, Anda memerlukan izin pilih untuk tampilan itu sendiri, tetapi Anda tidak memerlukan izin pilih untuk tabel yang mendasarinya. Jika Anda membuat tampilan yang mereferensikan tabel atau tampilan dalam skema lain, atau jika Anda membuat tampilan yang mereferensikan tampilan terwujud, Anda memerlukan izin penggunaan. Untuk menanyakan tampilan pengikatan terlambat, Anda memerlukan izin pilih untuk tampilan pengikatan akhir itu sendiri. Anda juga harus memastikan pemilik tampilan pengikatan akhir memiliki izin pilih untuk objek yang direferensikan (tabel, tampilan, atau fungsi yang ditentukan pengguna). Untuk informasi selengkapnya tentang Tampilan yang mengikat akhir, lihat. Catatan penggunaan

Izin yang diperlukan

Untuk menggunakan CREATEVIEW, salah satu izin berikut diperlukan.

  • Untuk membuat tampilan menggunakan CREATE [ORREPLACE]VIEW:

    • Superuser

    • Pengguna dengan VIEW izin CREATE [REPLACE]

  • Untuk mengganti tampilan yang ada menggunakan CREATE OR REPLACEVIEW:

    • Superuser

    • Pengguna dengan VIEW izin CREATE [ORREPLACE]

    • Lihat pemilik

Jika pengguna ingin mengakses tampilan yang menggabungkan fungsi yang ditentukan pengguna, pengguna harus memiliki EXECUTE izin pada fungsi tersebut.

Sintaks

CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query [ WITH NO SCHEMA BINDING ]

Parameter

ATAU REPLACE

Jika tampilan dengan nama yang sama sudah ada, tampilan diganti. Anda hanya dapat mengganti tampilan dengan kueri baru yang menghasilkan kumpulan kolom yang identik, menggunakan nama kolom dan tipe data yang sama. CREATEATAU REPLACE VIEW mengunci tampilan untuk membaca dan menulis sampai operasi selesai.

Ketika tampilan diganti, properti lainnya seperti kepemilikan dan hak istimewa yang diberikan dipertahankan.

name

Nama tampilan. Jika nama skema diberikan (sepertimyschema.myview) tampilan dibuat menggunakan skema yang ditentukan. Jika tidak, tampilan dibuat dalam skema saat ini. Nama tampilan harus berbeda dari nama tampilan atau tabel lain dalam skema yang sama.

Jika Anda menentukan nama tampilan yang dimulai dengan '# ', tampilan dibuat sebagai tampilan sementara yang hanya terlihat di sesi saat ini.

Untuk informasi selengkapnya tentang nama yang valid, lihatNama dan pengenal. Anda tidak dapat membuat tabel atau tampilan di database sistem template0, template1, padb_harvest, atau sys:internal.

column_name

Daftar opsional nama yang akan digunakan untuk kolom dalam tampilan. Jika tidak ada nama kolom yang diberikan, nama kolom berasal dari kueri. Jumlah maksimum kolom yang dapat Anda tentukan dalam satu tampilan adalah 1.600.

query

Kueri (dalam bentuk SELECT pernyataan) yang mengevaluasi ke tabel. Tabel ini mendefinisikan kolom dan baris dalam tampilan.

WITHTIDAK SCHEMA BINDING

Klausa yang menentukan bahwa tampilan tidak terikat pada objek database yang mendasarinya, seperti tabel dan fungsi yang ditentukan pengguna. Akibatnya, tidak ada ketergantungan antara tampilan dan objek yang direferensikannya. Anda dapat membuat tampilan bahkan jika objek yang direferensikan tidak ada. Karena tidak ada ketergantungan, Anda dapat menjatuhkan atau mengubah objek yang direferensikan tanpa mempengaruhi tampilan. Amazon Redshift tidak memeriksa dependensi sampai tampilan ditanyakan. Untuk melihat detail tentang tampilan pengikatan akhir, jalankan fungsi. PG_ _ GET _ LATE _ BINDING VIEW COLS

Bila Anda menyertakan SCHEMA BINDING klausa WITH NO, tabel dan tampilan yang direferensikan dalam SELECT pernyataan harus memenuhi syarat dengan nama skema. Skema harus ada saat tampilan dibuat, bahkan jika tabel yang direferensikan tidak ada. Misalnya, pernyataan berikut mengembalikan kesalahan.

create view myevent as select eventname from event with no schema binding;

Pernyataan berikut berjalan dengan sukses.

create view myevent as select eventname from public.event with no schema binding;
catatan

Anda tidak dapat memperbarui, menyisipkan, atau menghapus dari tampilan.

Catatan penggunaan

Tampilan pengikatan akhir

Tampilan pengikatan akhir tidak memeriksa objek basis data yang mendasarinya, seperti tabel dan tampilan lainnya, hingga tampilan ditanyakan. Akibatnya, Anda dapat mengubah atau menjatuhkan objek yang mendasarinya tanpa menjatuhkan dan membuat ulang tampilan. Jika Anda menjatuhkan objek yang mendasarinya, kueri ke tampilan pengikatan akhir akan gagal. Jika kueri ke kolom referensi tampilan pengikatan akhir di objek dasar yang tidak ada, kueri akan gagal.

Jika Anda menjatuhkan dan kemudian membuat ulang tabel atau tampilan dasar tampilan yang mengikat akhir, objek baru dibuat dengan izin akses default. Anda mungkin perlu memberikan izin ke objek yang mendasarinya bagi pengguna yang akan menanyakan tampilan.

Untuk membuat tampilan pengikatan akhir, sertakan klausa WITH NO SCHEMABINDING. Contoh berikut membuat tampilan tanpa skema mengikat.

create view event_vw as select * from public.event with no schema binding;
select * from event_vw limit 1; eventid | venueid | catid | dateid | eventname | starttime --------+---------+-------+--------+---------------+-------------------- 2 | 306 | 8 | 2114 | Boris Godunov | 2008-10-15 20:00:00

Contoh berikut menunjukkan bahwa Anda dapat mengubah tabel yang mendasari tanpa membuat tampilan.

alter table event rename column eventname to title;
select * from event_vw limit 1; eventid | venueid | catid | dateid | title | starttime --------+---------+-------+--------+---------------+-------------------- 2 | 306 | 8 | 2114 | Boris Godunov | 2008-10-15 20:00:00

Anda dapat mereferensikan tabel eksternal Amazon Redshift Spectrum hanya dalam tampilan pengikatan akhir. Salah satu aplikasi tampilan pengikatan akhir adalah untuk menanyakan tabel Amazon Redshift dan Redshift Spectrum. Misalnya, Anda dapat menggunakan UNLOAD perintah untuk mengarsipkan data lama ke Amazon S3. Kemudian, buat tabel eksternal Redshift Spectrum yang mereferensikan data di Amazon S3 dan buat tampilan yang menanyakan kedua tabel. Contoh berikut menggunakan UNION ALL klausa untuk bergabung dengan tabel Amazon SALES Redshift dan tabel Redshift Spectrum. SPECTRUM.SALES

create view sales_vw as select * from public.sales union all select * from spectrum.sales with no schema binding;

Untuk informasi selengkapnya tentang membuat tabel eksternal Redshift Spectrum, termasuk SPECTRUM.SALES tabel, lihat. Memulai dengan Amazon Redshift Spectrum

Saat Anda membuat tampilan standar dari tampilan pengikatan akhir, definisi tampilan standar berisi definisi tampilan pengikatan akhir pada saat tampilan standar dibuat. Ketergantungan tampilan pengikatan akhir tidak dilacak, jadi perubahan pada tampilan pengikatan akhir tidak dilacak dalam tampilan standar.

Untuk memperbarui tampilan standar untuk merujuk ke definisi terbaru dari tampilan pengikatan akhir, jalankan CREATE OR REPLACE VIEW dengan definisi tampilan awal yang Anda gunakan untuk membuat tampilan standar.

Lihat contoh berikut untuk membuat tampilan standar dari tampilan pengikatan akhir.

create view sales_vw_lbv as select * from public.sales with no schema binding; show view sales_vw_lbv; Show View DDL statement -------------------------------------------------------------------------------- create view sales_vw_lbv as select * from public.sales with no schema binding; (1 row) create view sales_vw as select * from sales_vw_lbv; show view sales_vw; Show View DDL statement --------------------------------------------------------------------------------------------------------------------- SELECT sales_vw_lbv.price, sales_vw_lbv."region" FROM (SELECT sales.price, sales."region" FROM sales) sales_vw_lbv; (1 row)

Perhatikan bahwa tampilan pengikatan akhir seperti yang ditunjukkan dalam DDL pernyataan untuk tampilan standar ditentukan saat tampilan standar dibuat, dan tidak akan diperbarui dengan perubahan apa pun yang Anda buat pada tampilan pengikatan akhir sesudahnya.

Contoh

Contoh perintah menggunakan satu set sampel objek dan data yang disebut TICKITdatabase. Untuk informasi selengkapnya, lihat Contoh database.

Perintah berikut menciptakan tampilan yang disebut myevent dari tabel yang disebut. EVENT

create view myevent as select eventname from event where eventname = 'LeAnn Rimes';

Perintah berikut menciptakan tampilan yang disebut myuser dari tabel yang disebutUSERS.

create view myuser as select lastname from users;

Perintah berikut membuat atau menggantikan tampilan yang disebut myuser dari tabel yang disebut. USERS

create or replace view myuser as select lastname from users;

Contoh berikut membuat tampilan tanpa skema mengikat.

create view myevent as select eventname from public.event with no schema binding;