PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

używanie schematów w postgresql

Parametr, którego szukasz, to search_path - zawiera listę schematów, w których będzie wyszukiwane zapytanie. Możesz więc zrobić coś takiego:

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

Zauważ, że jeśli plan zapytania zostanie zapisany w ciele funkcji foo(), możesz otrzymać nieoczekiwane wyniki. Zalecam, abyś zawsze wyraźnie wyświetlał schematy dla tabel, do których istnieją odniesienia, w funkcjach plpgsql, jeśli używasz zduplikowanych tabel. Jeśli nie, upewnij się, że masz testy, aby sprawdzić zachowanie ze zmieniającą się ścieżką wyszukiwania.

Och - możesz jawnie ustawić search_path również dla treści funkcji - zobacz instrukcję CREATE FUNCTION, aby uzyskać szczegółowe informacje.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zagnieżdżone zapytania JSON PostgreSQL

  2. Jak uzyskać wartości średnie dla interwałów czasowych w Postgresie

  3. PostgreSQL:Czy istnieje funkcja, która konwertuje int o podstawie 10 na ciąg o podstawie 36?

  4. Jak interpretować wartość txid_current() PosgreSQL?

  5. INSERT IN TO ... FROM SELECT ... ZWRACANIE mapowań id