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 pencarian 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)