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

JDBC का उपयोग करके सभी विदेशी कुंजियाँ प्राप्त करें

भले ही आपका लूप लूप पूरे ResultSet . पर पुनरावृति करता हो , फ़ंक्शन केवल FK बाधा में अंतिम कॉलम लौटाएगा क्योंकि प्रत्येक पुनरावृत्ति पर आप पिछले पुनरावृत्ति के मान को अधिलेखित कर देते हैं (fkTableData = rs.getString(i); ) बीटीडब्ल्यू:`fkTableData वास्तव में विधि के लिए एक स्थानीय चर होना चाहिए, न कि एक आवृत्ति चर।

आपके फ़ंक्शन को List<String> . लौटाना चाहिए String नहीं है ।

साथ ही:आप कॉल कर रहे हैं getImportedKeys() प्रत्येक कॉलम के लिए एक बार रिजल्टसेट में। यह बेहद अक्षम है। यदि आप Oracle का उपयोग कर रहे थे तो आप देखेंगे कि तुरंत क्योंकि FK जानकारी प्राप्त करना बहुत धीमा है (सिस्टम कैटलॉग तक पहुँचने पर पोस्टग्रेज़ बहुत तेज़ है)।

getImportedKeys() . के रूप में प्रत्येक FK कॉलम . के लिए एक पंक्ति लौटाता है आपको उन सभी पंक्तियों को एकत्र करने की भी आवश्यकता है जो एक ही बाधा परिभाषा (यानी एक माता-पिता/बाल तालिका संयोजन के लिए) से संबंधित हैं।

शायद सबसे अच्छी बात यह होगी कि एक वर्ग को परिभाषित किया जाए PkDefinition जो सभी शामिल कॉलम और टेबल नामों को शामिल करता है और आपके फ़ंक्शन को List<PkDefinition> . लौटाता है एक ही परिणाम सेट पंक्ति के लिए एकाधिक कॉल से बचने के लिए।




  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. Linux पर PostgreSQL में कॉन्फ़िगरेशन पैरामीटर work_mem

  3. Django फॉर्म/डेटाबेस त्रुटि:टाइप कैरेक्टर अलग-अलग के लिए बहुत लंबा मान (4)

  4. ubuntu `env:'pg_dump':ऐसी कोई फ़ाइल या निर्देशिका नहीं त्रुटि

  5. रेल मॉडल में विदेशी कुंजी जोड़ना