ホームページ > データベース > mysql チュートリアル > MySQL を使用して Python からリモート サーバーでデータベース間結合を実行する方法

MySQL を使用して Python からリモート サーバーでデータベース間結合を実行する方法

Barbara Streisand
リリース: 2024-11-27 13:57:10
オリジナル
366 人が閲覧しました

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

MySQL: Python からのリモート サーバー上のデータベース間結合

課題: Python を使用して、異なるサーバー上にある 2 つの MySQL データベース間でデータベース結合を実行します。 MySQLDB.

解決策:

2 つのデータベースへの接続を確立するには、個別の接続パラメータを使用してサーバーごとに MySQLDB 接続を作成します。ただし、MySQLDB にはクロスサーバー結合機能がないため、後続の結合操作を MySQLDB を使用して直接実行することはできません。

代替アプローチ:

FEDERATED Storage Engine:
MySQL は FEDERATED ストレージ エンジンを提供しており、リモート データベースからテーブルにローカルであるかのようにアクセスできます。次の構文を使用してフェデレーテッド テーブルを作成します:

CREATE FEDERATED TABLE remote_table (
  column_1 data_type,
  column_2 data_type,
  ...
) ENGINE=FEDERATED
CONNECTION='mysql://username:password@server2/database_B';
ログイン後にコピー

リンク サーバー 回避策:

MySQL の使用が不可能な場合は、リンクをサポートする別の DBMS を利用できます。 Microsoft SQL Server などのサーバー。ここでは、データベース B からデータベース A に接続するリンク サーバーを作成し、ミドルウェア DBMS 内のクエリを使用して結合を実行できます。

Python での実装:

選択したアプローチ:

FEDERATEDエンジン:

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:**
ログイン後にコピー

import pymssql

外部 DBMS への接続を確立します

conn_external = pumblessql.connect(...)

クエリを実行して両方からデータを取得しますデータベース

cursor_external.execute("""
SELECT *
FROM linked_server_A.database_A.dbo.local_table
INNER JOIN linked_server_B.database_B.dbo.remote_table
ON linked_server_A.database_A. dbo.local_table.id = linked_server_B.database_B.dbo.remote_table.id
""")

結果 =cursor_external.fetchall()

以上がMySQL を使用して Python からリモート サーバーでデータベース間結合を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート