2012-01-20 20 views
5

मैं पाइथन का उपयोग करके दो डेटाबेस से कनेक्ट करना चाहता हूं और बाद में, दोनों डेटाबेस से तालिकाओं का उपयोग करना चाहता हूं। मैं यह कैसे कर सकता हूँ? क्या निम्न कोड सही है?दो डेटाबेस से कनेक्ट करें

con = mdb.connect(host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1, db2=MY_DB2) 
+1

क्या आप "दोनों डेटाबेस से उपयोग तालिकाओं" मतलब है। क्या आप उन्हें एक ही प्रश्न में शामिल करना चाहते हैं? यह संभव नहीं है। –

+0

@ टिचोड्रोमा हां, मैं डेटाबेस 1 से tableA और डेटाबेस 2 से tableB में शामिल होना चाहता हूं, दोनों डेटाबेस एक ही सर्वर पर हैं। क्या यह संभव है? – manxing

+0

@manxing हाँ यह है। – greut

उत्तर

13

यदि आप अपने connect कॉल में डेटाबेस निर्दिष्ट नहीं करते हैं, तो आप एक साथ कई डेटाबेस के विरुद्ध प्रश्न लिख सकते हैं। documentation कहता है कि db आवश्यक नहीं है।

db = _mysql.connect('localhost', 'user', 'passwd') 

तो

SELECT u.*, i.* FROM db1.users u LEFT JOIN db2.items i ON u.id = i.user_id 

लेकिन यह केवल यदि दो डेटाबेस एक ही सर्वर पर कर रहे हैं काम करेंगे।

1) एक पांडा DataFrame में डेटा ले लो और इसका इस्तेमाल दूसरे सर्वर में तालिका बनाने के लिए:

+0

क्या मेरे उत्तर की तुलना में ऐसा करने में कोई लाभ है? –

+2

एक कनेक्शन बनाम दो कनेक्शन। – greut

+0

दो से बेहतर क्यों है? प्रदर्शन, स्मृति, उपयोग में आसानी या सिर्फ आपका अच्छा स्वाद? –

7

बस दो अलग-अलग कनेक्शन

con1 = mdb.connect (host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1) 
con2 = mdb.connect (host=MY_HOST2, user=MY_USER2, passwd=MY_PASS2, db2=MY_DB2) 

बनाने के लिए और जब एक डेटाबेस का उपयोग कर बस के रूप में आप के स्वतंत्र रूप से उपयोग करते हैं।

उत्तर को पूरा करने के लिए: "क्या निम्न कोड सही है? ..."। नहीं, वह वाक्यविन्यास ऐसा नहीं करेगा।

0

आप दो संभावनाएं है। server1 से

2) बीसीपी बाहर डेटा और दूसरे सर्वर में इसे लोड

+0

के लिए +1 कृपया उचित स्वरूपण का उपयोग करें। – SteveFest

संबंधित मुद्दे