บน Postgresql สามารถเรียกข้อมูลข้าม Database ได้ แต่ต้องสั่งติดตั้ง dblink extension ก่อน ด้วยคำสั่ง
create extension dblink;
จากนั้น ใช้คำสั่ง dblink() ใน FROM clause ซึ่ง Function นี้ จะต้อง return records มา ซึ่งเราจะต้องกำหนดชนิดของข้อมูลด้วย
ดังตัวอย่างนี้
SELECT
t.id, t.fullname, t.dob
FROM
dblink(
'dbname=otherdatabase options=-csearch_path=schema_name',
'
SELECT
id,
fullname,
dob,
FROM sometable
' ) as t(
id int,
fullname text,
dob date,
)
เป็นการเรียกไปยัง Database ชื่อ otherdatabase, Schema ชื่อ schema_name และเรียกข้อมูลจาก Table ชื่อ sometable โดยมี field ชื่อ id, fullname, dob
หลังคำสั่ง dblink ต้องกำหนด้วยว่า records ที่ได้กลับมา มี Datatype เป็นอะไรบ้าง
ในตัวอย่างข้างต้น กำหนด id เป็น Integer, fullname เป็น Text และ dob (วันเกิด — Date of birth) เป็น Date
แต่ถ้าอีก Database นั้น ให้สิทธิ์ user ที่ติดต่อเข้าไป ไม่ใช่ super user จะต้องระบุ username, password ดังตัวอย่างนี้
dblink(
'dbname=otherdatabase user=db_username password=db_password options=-csearch_path=schema_name', ...)
เป็นการติดต่อ Database: otherdatabase, User: db_username, Password: db_password, Schema: schema_name
หวังว่าจะเป็นประโยชน์ครับ