PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql में स्कीमा का उपयोग करना

आप जिस पैरामीटर की तलाश कर रहे हैं वह है search_path - यह उन स्कीमाओं को सूचीबद्ध करता है जिनमें एक क्वेरी दिखाई देगी। तो, आप कुछ ऐसा कर सकते हैं:

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

ध्यान दें कि यदि किसी क्वेरी की योजना foo() के शरीर के अंदर सहेजी जाती है तो आपको अप्रत्याशित परिणाम मिल सकते हैं। यदि आप डुप्लीकेट टेबल का उपयोग कर रहे हैं तो मैं आपको हमेशा plpgsql फ़ंक्शंस में संदर्भित तालिकाओं के लिए स्कीमा को स्पष्ट रूप से सूचीबद्ध करने की सलाह दूंगा। यदि नहीं, तो सुनिश्चित करें कि आपके पास जप search_path के साथ व्यवहार की जांच करने के लिए परीक्षण है।

ओह - आप किसी फ़ंक्शन के मुख्य भाग के लिए भी स्पष्ट रूप से search_path सेट कर सकते हैं - विवरण के लिए मैनुअल का CREATE FUNCTION संदर्भ देखें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज क्वेरी ऑप्टिमाइज़ेशन (इंडेक्स स्कैन के लिए बाध्य करना)

  2. Windows 10 पर Postgresql 11 में JSON फ़ाइल आयात करना

  3. 'WIN1252' एन्कोडिंग में बाइट अनुक्रम 0x9d के साथ वर्ण 'UTF8' एन्कोडिंग में कोई समकक्ष नहीं है

  4. क्या पीएलवी 8 जावास्क्रिप्ट भाषा एक्सटेंशन तृतीय पक्ष पुस्तकालयों को कॉल कर सकता है?

  5. एक पोस्टग्रेज RAISE EXCEPTION को PDOException में कैसे परिवर्तित किया जाता है?