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

menggunakan skema di postgresql

Parameter yang Anda cari adalah search_path - yang mencantumkan skema yang akan dilihat oleh kueri. Jadi, Anda dapat melakukan sesuatu seperti:

CREATE TABLE schema1.tt ...
CREATE TABLE schema2.tt ...
CREATE FUNCTION schema1.foo() ...
CREATE FUNCTION schema2.foo() ...
SET search_path = schema1, something_else;
SELECT * FROM tt;        -- schema1.tt
SELECT * FROM schema2.tt -- schema2.tt
SELECT foo();            -- calls schema1.foo
SELECT schema2.foo();    -- calls schema2.foo

Perhatikan bahwa jika paket kueri disimpan di dalam badan foo() maka Anda mungkin mendapatkan hasil yang tidak terduga. Saya akan merekomendasikan Anda untuk selalu secara eksplisit mencantumkan skema untuk tabel yang direferensikan dalam fungsi plpgsql jika Anda menggunakan tabel duplikat. Jika tidak, pastikan Anda memiliki pengujian untuk memeriksa perilaku dengan jalur_penelusuran yang berubah.

Oh - Anda juga dapat menyetel search_path untuk badan fungsi secara eksplisit - lihat referensi CREATE FUNCTION manual untuk detailnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Penalti kinerja untuk menggabungkan dua tabel dalam skema terpisah

  2. Sintaks yang benar untuk array tipe komposit

  3. Bagaimana cara deserialize nilai BigDecimal yang diterima dari broker kafka melalui mekanisme debezium CDC?

  4. PostgREST / PostgreSQL Tidak dapat memperbesar pesan buffer string

  5. Fungsi jendela PostgreSQL:row_number() over (partisi col order by col2)