[POSTGRESQL] Cara Link Tabel Dari Database Yang Berbeda (DBLINK)

Ada teman saya yang bertanya pada saya, bagaimana cara mengambil data dari tabel tetapi dengan database yang berbeda? (PostgreSQL)
Saya jawab Kalau ga salah bisa menggunakan DBLINK. (loh ko kalau ga salah? :D)

Penggunaan dblink untuk pengambilan data dari database lain sederhananya gini:
select * from dblink('koneksi', 'select * from nama_tabel') as tabel_alias (kolom_1 type_data, kolom_2 type_data);

Contoh kasus:
Saya ingin mengambil data dari database postgres dengan nama tabel table_arief.

isi dari table_arief
Syntax nya:
select * from dblink('host=localhost user=postgres password=root123 dbname=postgres', 'select * from table_arief') as get_arief (kolom_1 integer, kolom_2 varchar(50));



hasil pengambilan dengan dblink

Keterangan:
host = host tempat database itu dibuat
user = nama user
password = kata sandi
dbname = nama database yang akan di ambil datanya

Jika kalian baru menginstal PostgreSQL atau belum di uwik-uwik mungkin akan mengalami error seperti berikut:
ERROR:  function dblink(unknown, unknown) does not exist

Solusinya kalian harus mengaktifkan dulu dblinknya dengan syntax berikut:
CREATE EXTENSION dblink;

Setelah itu RUN lagi sql untuk select yang tadi.



Penggunaan dblink dapat digunakan untuk join tabel dari server atau database yang berbeda. dblink juga dapat digunakan untuk create table,  insert data, delete data, drop table, dll. [dblink_exec]

Contoh kita akan membuat table "link_table" pada database postgres
select * from dblink_exec('host=localhost user=postgres password=root123 dbname=postgres', 'create table link_table(nomor integer, nama varchar(50))');
result:
CREATE TABLE

Insert table dengan dblink:
select * from dblink_exec('host=localhost user=postgres password=root123 dbname=postgres', 'insert into link_table values(1, ''arief'')');
result:
INSERT 0 1

Delete data dari table dengan dblink:
select * from dblink_exec('host=localhost user=postgres password=root123 dbname=postgres', 'delete from link_table');
result:
DELETE 1

Drop table dengan dblink:
select * from dblink_exec('host=localhost user=postgres password=root123 dbname=postgres', 'drop table link_table');
result:
DROP TABLE


NOTE: Cara mengaktifkan dblink diatas digunakan di PostgreSQL pada Windows Server. Di OS Linux mungkin berbeda.


Semoga bermanfaat,
Previous
Next Post »

Silahkan Tulis Komentar Anda disini... ConversionConversion EmoticonEmoticon