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

PostgreSQL में संदर्भ कैसे बदलें?

तालिकाओं और / या अन्य वस्तुओं के बीच आंतरिक निर्भरता कभी भी वस्तु के नाम से बंधी नहीं होती है। आंतरिक रूप से, प्रत्येक वस्तु को एक कैटलॉग तालिका में संग्रहीत किया जाता है और वस्तु की OID (आंतरिक प्राथमिक कुंजी) का उपयोग सब कुछ के लिए किया जाता है। अन्य।

तदनुसार, एक FOREIGN KEY संदर्भ कैटलॉग तालिकाओं में संग्रहीत किया जाता है pg_constraint (बाधा स्वयं अपने नाम सहित) और pg_depend . तालिका के नाम बदलने से कार्यक्षमता बिल्कुल भी खराब नहीं होगी

नाम प्रतिबंध अपरिवर्तित रहता है। आप इसे अनदेखा कर सकते हैं, या आप बाधा का नाम बदलना चाह सकते हैं ताकि यह भ्रामक न हो।

हालांकि, चूंकि आपने निर्माण के समय एक बाधा नाम निर्दिष्ट नहीं किया था, इसलिए सिस्टम ने एक डिफ़ॉल्ट चुना, जो कि example2_example1fk_fkey है। आपके मामले में जब तक कि नाम नहीं लिया गया। संदर्भित तालिका का कोई संदर्भ नहीं नाम। लेकिन कॉलम नाम शायद आपके उदाहरण में भी बदलाव करना होगा। और वह बाधा नाम में प्रयोग किया जाता है।

ALTER TABLE example2 RENAME example1fk TO example3fk;  -- rename column

Postgres 9.2 या बाद के संस्करण में आप केवल बाधा का नाम बदल सकते हैं (जैसे डेक्विस ने टिप्पणी की ):

ALTER TABLE example2 RENAME CONSTRAINT example2_example1fk_fkey TO example2_example3fk_fkey;

पुराने संस्करणों में, आपको इसका नाम बदलने के लिए बाधा को छोड़ना और फिर से बनाना होगा, एक ही कथन में सर्वश्रेष्ठ:

ALTER TABLE example2  -- rename constraint
   DROP CONSTRAINT example2_example1fk_fkey
 , ADD  CONSTRAINT example2_example3fk_fkey FOREIGN KEY (example3fk)
      REFERENCES example3 (id) DEFERRABLE INITIALLY DEFERRED;

मैनुअल में विवरण।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आंशिक वाक्य मिलान के साथ Django पाठ खोज django3 को अद्यतन करें

  2. PostgreSQL का उपयोग करके डेटाबेस कैसे स्विच करें

  3. कैसे असिन () PostgreSQL में काम करता है

  4. पीजी मणि sslmode =सत्यापन-पूर्ण, प्रमाणपत्र कहां रखें?

  5. PostgreSQL में गैर-अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को वापस करने के 2 तरीके