Topic: insert table dari database yang berbeda

Kondisi saya punya:
- menggunakan postgre 8.3
- database A dengan table A
- database B dengan table B
- table A dan table B mempunyai struktur tabel yang sama
- database A bertindak sebagai server (master) dan database B sebagai client (slave)

Pertanyaan:
Bagaimana cara saya menginsert table B berdasarkan data yang ada pada table A? (saya ingin melakukan query insert pada databse A)

Note:
saat ini saya hanya bisa melakukan insert table B dari query pada database B.

mohon bantuannya
terima kasih

2

Re: insert table dari database yang berbeda

bisa gunakan dblink, contoh:

insert into A
  select dblink(
    'dbname=B, port=5432, user=user, password=pass',
    'select * from B'
  ) as (struktur_tabel: field1 type1, field2 type2...);

cat.
harus dilakukan casting secara ekplisit karena return type
dari dblink berupa record generic (nama/tipe field bisa
apa saja, yang penting tipenya cocok).

Re: insert table dari database yang berbeda

aa wrote:

bisa gunakan dblink, contoh:

insert into A
  select dblink(
    'dbname=B, port=5432, user=user, password=pass',
    'select * from B'
  ) as (struktur_tabel: field1 type1, field2 type2...);

cat.
harus dilakukan casting secara ekplisit karena return type
dari dblink berupa record generic (nama/tipe field bisa
apa saja, yang penting tipenya cocok).

kalo query di atas kan, insert into table A dari table B dan pada dilakukan di dalam database A.
yang saya tanyakan,, insert into table B dari table A dan di lakukan di dalam database A.
Jadi sistem pengambilan datanya di balik, bagaimana ya?

4

Re: insert table dari database yang berbeda

bukannya sama saja, konek dan insert dilakukan dari database B.
dblink dan select ke database/table A.

\c B
insert into B
  select dblink(
    'dbname=A, port=5433, user=userA, password=passA',
    'select * from A'
  ) as (field1 type1, field2 type2...);

apa ada alasan khusus kenapa harus dari database A?