Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyertai Jadual Merentasi Pelayan MySQL yang Berbeza?

Bagaimanakah Saya Boleh Menyertai Jadual Merentasi Pelayan MySQL yang Berbeza?

DDD
DDDasal
2024-12-18 12:30:11882semak imbas

How Can I Join Tables Across Different MySQL Servers?

Menyertai Jadual daripada Pelayan Berasingan dalam MySQL

Percubaan untuk menyertai jadual daripada dua pelayan berbeza, pelayan1 dan pelayan2, mungkin menghadapi ralat. Berikut ialah pendekatan untuk mengatasi cabaran ini menggunakan ENJIN BERSEKUTU MySQL:

Menggunakan Jadual Bersekutu

Untuk merapatkan jurang antara pelayan, cipta jadual bersekutu berdasarkan jadual jauh . Struktur kedua-dua jadual mesti kekal sama.

Contoh Kod:

Buat jadual bersekutu yang dipanggil federated_table berdasarkan jadual jauh bernama test_table:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

Dengan mewujudkan sambungan bersekutu, anda boleh menyertai jadual merentas pelayan seolah-olah ia local:

SELECT a.field1, b.field2
FROM federated_table AS a
INNER JOIN [server2, 3312].[db2].table2 AS b
ON a.field1 = b.field2;

Nota: Akaun fed_user mesti mempunyai kebenaran yang sesuai pada kedua-dua pelayan untuk mewujudkan sambungan bersekutu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual Merentasi Pelayan MySQL yang Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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