Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Bertanya Merentas Pangkalan Data PostgreSQL yang Berbeza?

Bagaimanakah Saya Boleh Bertanya Merentas Pangkalan Data PostgreSQL yang Berbeza?

Barbara Streisand
Barbara Streisandasal
2025-01-12 07:50:41769semak imbas

How Can I Query Across Different PostgreSQL Databases?

Gunakan PostgreSQL untuk membuat pertanyaan merentas pangkalan data

PostgreSQL sendiri tidak menyokong pertanyaan silang pangkalan data secara asli, seperti yang ditunjukkan oleh mesej ralat, tetapi terdapat beberapa penyelesaian yang tersedia. Salah satu cara ialah menggunakan sambungan postgres_fdw.

postgres_fdw

postgres_fdw (pembungkus data asing) membolehkan anda menyambung ke jadual dalam mana-mana pangkalan data PostgreSQL, tanpa mengira lokasinya. Untuk menggunakan sambungan ini:

  1. Pastikan versi Postgres anda menyokong postgres_fdw (v9.3 atau lebih tinggi disyorkan).

  2. Pasang sambungan postgres_fdw dalam setiap pangkalan data di mana anda ingin melakukan pertanyaan merentas pangkalan data.

  3. Buat pelayan luaran dan pemetaan pengguna:

    <code class="language-sql"> postgres=# CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'remote_host', port '5432');
     postgres=# CREATE USER MAPPING FOR CURRENT_USER SERVER foreign_server OPTIONS (user 'remote_user', password 'remote_password');</code>
  4. Buat jadual luaran:

    <code class="language-sql"> postgres=# CREATE FOREIGN TABLE cross_db_table SERVER foreign_server OPTIONS (table_name 'remote_table');</code>

Alternatif sebelum versi 9.3

Untuk versi Postgres sebelum 9.3, anda boleh menggunakan fungsi bernama dblink untuk melakukan pertanyaan silang pangkalan data. Walaupun ia dikekalkan dan diedarkan bersama PostgreSQL, penggunaannya berbeza daripada postgres_fdw. Lihat dokumentasi PostgreSQL untuk mendapatkan butiran lanjut tentang dblink.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Bertanya Merentas Pangkalan Data PostgreSQL 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