PostgreSQL 가져오기
PostgreSQL 가져오기 (PostgreSQL Import)
실행 중인 PostgreSQL 데이터베이스에 직접 쿼리를 날리고 싶다면, postgres 확장(extension)이 필요해요. 이 페이지에서 설치부터 postgres_scan 함수, 그리고 ATTACH로 전체 DB를 붙이는 방법까지 살펴볼게요.
설치와 로딩 (Installation and Loading)
확장은 INSTALL SQL 명령으로 설치할 수 있어요. 이 명령은 한 번만 실행하면 됩니다.
INSTALL postgres;
설치한 postgres 확장을 실제로 사용하려면 LOAD SQL 명령으로 불러와요.
LOAD postgres;
사용법 (Usage)
postgres 확장을 설치한 뒤에는 postgres_scan 함수로 PostgreSQL의 테이블을 조회할 수 있어요.
-- 데이터베이스 "mydb"의 스키마 "public"에 있는 테이블 "mytable"을 스캔
SELECT * FROM postgres_scan('host=localhost port=5432 dbname=mydb', 'public', 'mytable');
postgres_scan 함수의 첫 번째 매개변수는 PostgreSQL 연결 문자열(connection string)이에요. 즉 {key}={value} 형식으로 연결 인자들을 나열하는 방식이죠. 아래는 사용할 수 있는 유효한 인자 목록이에요.
| 이름 (Name) | 설명 (Description) | 기본값 (Default) |
|---|---|---|
host |
연결할 호스트 이름 | localhost |
hostaddr |
호스트 IP 주소 | localhost |
port |
포트 번호 | 5432 |
user |
PostgreSQL 사용자 이름 | [OS 사용자 이름] |
password |
PostgreSQL 비밀번호 | |
dbname |
데이터베이스 이름 | [user] |
passfile |
비밀번호가 저장된 파일 이름 | ~/.pgpass |
또는 ATTACH 명령으로 데이터베이스 전체를 연결(attach)할 수도 있어요. 이렇게 하면 PostgreSQL 데이터베이스 안에 있는 모든 테이블을 마치 일반 데이터베이스처럼 조회할 수 있습니다.
-- 주어진 연결 문자열로 PostgreSQL 데이터베이스 attach
ATTACH 'host=localhost port=5432 dbname=mydb' AS test (TYPE postgres);
-- "tbl_name" 테이블을 이제 일반 테이블처럼 조회 가능
SELECT * FROM test.tbl_name;
-- 활성 데이터베이스를 "test"로 전환
USE test;
-- 파일에 있는 모든 테이블 나열
SHOW TABLES;
더 자세한 내용은 PostgreSQL 확장 문서를 참고하세요.