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
(pembungkus data asing) membolehkan anda menyambung ke jadual dalam mana-mana pangkalan data PostgreSQL, tanpa mengira lokasinya. Untuk menggunakan sambungan ini:
Pastikan versi Postgres anda menyokong postgres_fdw
(v9.3 atau lebih tinggi disyorkan).
Pasang sambungan postgres_fdw
dalam setiap pangkalan data di mana anda ingin melakukan pertanyaan merentas pangkalan data.
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>
Buat jadual luaran:
<code class="language-sql"> postgres=# CREATE FOREIGN TABLE cross_db_table SERVER foreign_server OPTIONS (table_name 'remote_table');</code>
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!