Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Gabungan Antara Pangkalan Data pada Pelayan Jauh dari Python Menggunakan MySQL?

Bagaimana untuk Melakukan Gabungan Antara Pangkalan Data pada Pelayan Jauh dari Python Menggunakan MySQL?

Barbara Streisand
Lepaskan: 2024-11-27 13:57:10
asal
374 orang telah melayarinya

How to Perform Inter-Database Joins on Remote Servers from Python Using MySQL?

MySQL: Inter-Database Joins on Remote Servers From Python

Cabaran: Lakukan gabungan pangkalan data antara dua pangkalan data MySQL yang berada pada pelayan berbeza menggunakan Python's MySQLDB.

Penyelesaian:

Untuk mewujudkan sambungan kepada dua pangkalan data, buat sambungan MySQLDB untuk setiap pelayan menggunakan parameter sambungan yang berasingan. Walau bagaimanapun, operasi cantuman seterusnya tidak boleh dilakukan secara langsung menggunakan MySQLDB kerana ia tidak mempunyai fungsi cantuman silang pelayan.

Pendekatan Alternatif:

Enjin Storan BERSEKUTU:
MySQL menawarkan enjin storan BERSEKUTU, membolehkan anda mengakses jadual dari pangkalan data jauh seolah-olah ia adalah tempatan. Gunakan sintaks berikut untuk mencipta jadual bersekutu:

CREATE FEDERATED TABLE remote_table (
  column_1 data_type,
  column_2 data_type,
  ...
) ENGINE=FEDERATED
CONNECTION='mysql://username:password@server2/database_B';
Salin selepas log masuk

Pelayan Terpaut Penyelesaian:

Jika menggunakan MySQL tidak boleh dilaksanakan, anda boleh menggunakan DBMS lain yang menyokong terpaut pelayan, seperti Microsoft SQL Server. Di sini, anda boleh mencipta pelayan terpaut untuk menyambung ke pangkalan data A daripada pangkalan data B dan melakukan gabungan menggunakan pertanyaan dalam DBMS perisian tengah.

Pelaksanaan dalam Python:

Bergantung pada pendekatan pilihan anda:

PERSEKUTUAN Enjin:

import MySQLdb

# Create a connection to the local database
conn_local = MySQLdb.connect(...)

# Create a cursor for the local connection
cursor_local = conn_local.cursor()

# Execute a query to join the local table with the remote table
cursor_local.execute("""
  SELECT *
  FROM local_table
  INNER JOIN remote_table
  ON local_table.id = remote_table.id
""")

result = cursor_local.fetchall()

**Linked Servers Workaround:**
Salin selepas log masuk

import pymssql

Tetapkan sambungan ke DBMS luaran

conn_external = pymssql.connect(...)

Jalankan pertanyaan untuk mendapatkan semula data daripada kedua-duanya pangkalan data

cursor_external.execute("""
PILIH *
DARI linked_server_A.database_A.dbo.local_table
INNER JOIN linked_server_B.database_B.dbo.remote_table""")

hasil = cursor_external.fetchall()

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Antara Pangkalan Data pada Pelayan Jauh dari Python Menggunakan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan