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

तालिका, फ़ील्ड और स्कीमा नाम का उपयोग करके संदर्भित तालिका का नाम खोजें

यदि आपको अन्य RDBMS में पोर्टेबल होने के लिए इसकी आवश्यकता नहीं है तो यह बहुत है pg_catalog . में कैटलॉग तालिकाओं का उपयोग करने के लिए तेज़ और आसान मानक सूचना स्कीमा के बजाय:

SELECT c.confrelid::regclass::text AS referenced_table
     , c.conname AS fk_name
     , pg_get_constraintdef(c.oid) AS fk_definition
FROM   pg_attribute a 
JOIN   pg_constraint c ON (c.conrelid, c.conkey[1]) = (a.attrelid, a.attnum)
WHERE  a.attrelid = '"Schema2"."TableB"'::regclass   -- table name
AND    a.attname  = 'A_Id'                           -- column name  
AND    c.contype  = 'f'
ORDER  BY conrelid::regclass::text, contype DESC;

रिटर्न:

 referenced_table | fk_name  |  fk_definition
------------------+-------------------------+----------------------------------------------
 Schema1.TableA   | b1_fkey  | FOREIGN KEY ("B_id") REFERENCES "Schema1"."TableA"("A_id")

नोट

  • अतिरिक्त दो कॉलम केवल ओरिएंटेशन के लिए हैं। आपके Q के अनुसार, आपको केवल पहला कॉलम चाहिए।

  • यह सभी लौटाता है दिए गए कॉलम नाम से जुड़ी सभी विदेशी कुंजियों द्वारा संदर्भित टेबल - कई कॉलम पर FK बाधाओं सहित।

  • नाम स्वचालित रूप से स्कीमा-योग्य है या वर्तमान search_path . द्वारा निर्धारित दृश्यता के अनुसार नहीं है . जहां आवश्यक हो वहां नाम भी बच जाता है (अवैध या अपर केस वर्ण, आरक्षित शब्द, ...) स्वचालित रूप से भी।

pg_constraint . का विवरण देखें और pg_attribute मैनुअल में। और वस्तु पहचानकर्ता प्रकारों के बारे में भी अधिक।

संबंधित:

  • अज्ञात नाम के साथ PostgreSQL ड्रॉप बाधा
  • सभी PK और FK पुनर्प्राप्त करना



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tablefunc . का उपयोग करके एकाधिक कॉलम पर पिवट करें

  2. PostgreSQL द्वारा समर्थित टाइमज़ोन की सूची लौटाएं

  3. हाइबरनेट, पोस्टग्रेस्क्ल:कॉलम एक्स प्रकार ओआईडी का है लेकिन अभिव्यक्ति प्रकार बाइट है

  4. Postgres सरणियों का उपयोग करने के लिए रेल प्रवासन बदलते स्तंभ

  5. PHP में SQL चर को कैसे बांधें?