About
home
Tmax OpenSQL
home
💻

39. dblink

작성자
KMS

dblink 개요

dblink 이란?

dblink원격 데이터베이스에서 쿼리(일반적으로 SELECT이지만 행을 반환하는 모든 SQL 문일 수 있음)를 실행합니다.
두 개의 text인수가 주어지면 첫 번째 인수는 영구 연결의 이름으로 먼저 조회됩니다. 발견되면 해당 연결에서 명령이 실행됩니다. 찾을 수 없는 경우 첫 번째 인수는 for 와 같이 연결 정보 문자열로 취급되며 dblink_connect표시된 연결은 이 명령이 실행되는 동안만 이루어집니다.
- PostgreSQL 공식 문서 -
현재 데이터베이스 세션 내에서 물리적으로 다른 곳에 위치한 데이터베이스 연결을 지원하는 확장성 모듈이며, extension 설치 후 사용자 설정에 맞춰 사용하고 삭제하지 않는 이상 재설치는 불가합니다.
스키마 지정이 없으면 defualt로 public에 설치가 되므로 스키마 별로 사용이 필요한 경우 ALTER로 변경하거나 삭제 후 재설치하여 사용해야 합니다.

Extension 사용법

CREATE EXTENSION [ IF NOT EXISTS ] extension_name [WITH] [SCHEMA schema_name] [VERSION version] [FROM old_version]
SQL
복사

dblink 문법

SELECT dblink_connect('[id]', 'hostaddr = [address] user = [user] password = [password] dbname = [db_name] port = [port]')
Shell
복사
SELECT [result_name].* FROM dblink('[dblink_name]', '[query]') AS [result_name] ([schema])
SQL
복사
dblink 옵션

설치 및 테스트

CREATE EXTENSION

$ psql -U postgres postgres=# CREATE EXTENSION DBLINK; postgres=# \dx
SQL
복사

DB LINK 사용

postgres=# SELECT dblink_connect('postgres', 'host=192.168.1.144 user=postgres password=1234 dbname=postgres port=5432'); postgres=# select * from dblink('postgres','select * from t3') as test(c char(5)); postgres=# SELECT dblink_disconnect('postgres');
SQL
복사
지금까지 ‘PostgreSQL의 dblink’에 관해 알아보았습니다
‘PostgreSQL의 pg_cron’를 바로 이어서 확인해보세요!

자유롭게 댓글을 남겨주세요