2012-01-20 3 views
5

파이썬을 사용하여 두 개의 데이터베이스에 연결하고 나중에 두 데이터베이스의 테이블을 사용하고 싶습니다. 어떻게해야합니까? 다음 코드가 맞습니까?두 데이터베이스에 연결

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

"두 데이터베이스의 테이블 사용"은 무엇을 의미합니까? 단일 쿼리에서 이들을 가입 하시겠습니까? 그건 불가능하다. –

+0

@Tichodroma 예, database1의 tableA와 database2의 tableB에 가입하려고합니다. 두 데이터베이스가 모두 동일한 서버에 있습니다. 가능한가? – manxing

+0

@manxing 예입니다. – greut

답변

13

connect 호출에서 데이터베이스를 지정하지 않으면 여러 데이터베이스에 대해 한 번에 쿼리를 작성할 수 있습니다. documentationdb이 필요 없다고 말합니다. 두 데이터베이스가 같은 서버에있는 경우

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

당신은 두 가지 가능성이있다.

2) server1의 데이터를 BCP 출력하고 두 번째 서버에로드하십시오.

+0

올바른 형식을 사용하십시오. – SteveFest