Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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. Datashares berperilaku sebagai data eksternal dan oleh karena itu tidak didukung sebagai jalur pencarian.
-
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 skema ENTERPRISE.
create table enterprise.frontier (c1 int);
Ketika tabel PUBLIC.FRONTIER dibuat dalam database yang sama, dan pengguna tidak menentukan nama skema dalam kueri, PUBLIC.FRONTIER lebih diutamakan daripada 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)