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’를 바로 이어서 확인해보세요!