search_path - Amazon Redshift

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

search_path

Nilai (default dalam huruf tebal)

'$user', publik, schema_names

Daftar nama skema yang ada dipisahkan koma. Jika '$user' hadir, maka skema yang memiliki nama yang sama seperti SESSION_USER diganti, jika tidak maka akan diabaikan.

Deskripsi

Menentukan urutan di mana skema dicari ketika sebuah objek (seperti tabel atau fungsi) direferensikan dengan nama sederhana tanpa komponen skema:

  • Jalur penelusuran tidak didukung dengan skema eksternal dan tabel eksternal. Tabel eksternal harus secara eksplisit dikualifikasikan oleh skema eksternal.

  • Ketika objek dibuat tanpa skema target tertentu, mereka ditempatkan di skema pertama yang tercantum di jalur pencarian. Jika jalur pencarian kosong, sistem mengembalikan kesalahan.

  • Ketika objek dengan nama identik ada dalam skema yang berbeda, yang ditemukan pertama kali di jalur pencarian digunakan.

  • Objek yang tidak ada dalam skema mana pun di jalur pencarian hanya dapat direferensikan dengan menentukan skema yang berisi dengan nama yang memenuhi syarat (bertitik).

  • Skema katalog sistem, pg_catalog, selalu dicari. Jika disebutkan di jalur, itu dicari dalam urutan yang ditentukan. Jika tidak, itu dicari sebelum salah satu item jalur.

  • Skema tabel sementara sesi saat ini, pg_temp_nnn, selalu dicari jika ada. Ini dapat secara eksplisit terdaftar di jalur dengan menggunakan alias pg_temp. Jika tidak terdaftar di jalur, itu dicari terlebih dahulu (bahkan sebelum pg_catalog). Namun, skema sementara hanya dicari untuk nama relasi (tabel, tampilan). Itu tidak dicari untuk nama fungsi.

Contoh

Contoh berikut membuat skema ENTERPRISE dan menetapkan search_path ke skema baru.

create schema enterprise; set search_path to enterprise; show search_path; search_path ------------- enterprise (1 row)

Contoh berikut menambahkan skema ENTERPRISE ke search_path default.

set search_path to '$user', public, enterprise; show search_path; search_path ----------------------------- "$user", public, enterprise (1 row)

Contoh berikut menambahkan tabel FRONTIER ke skemaENTERPRISE.

create table enterprise.frontier (c1 int);

Saat mejaPUBLIC. FRONTIERdibuat dalam database yang sama, dan pengguna tidak menentukan nama skema dalam kueri,PUBLIC. FRONTIERlebih diutamakan. ENTERPRISE FRONTIER.

create table public.frontier(c1 int); insert into enterprise.frontier values(1); select * from frontier; frontier ---- (0 rows) select * from enterprise.frontier; c1 ---- 1 (1 row)