IMPORT FOREIGN SCHEMA
IMPORT FOREIGN SCHEMA
외부 서버(foreign server)에 있는 테이블 정의를 가져와 외부 테이블(foreign table)을 만드는 명령이에요. 원격 서버의 스키마에 존재하는 테이블·뷰를 로컬 스키마에 외부 테이블로 복제해서, 원격 데이터를 마치 로컬 테이블처럼 질의하고 싶을 때 사용해요.
출처: PostgreSQL 문서
본문
개요 (Synopsis)
IMPORT FOREIGN SCHEMA remote_schema
[ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
FROM SERVER server_name
INTO local_schema
[ OPTIONS ( option 'value' [, ... ] ) ]
설명 (Description)
IMPORT FOREIGN SCHEMA는 외부 서버에 존재하는 테이블을 나타내는 외부 테이블을 만들어요. 새 외부 테이블은 명령을 실행한 사용자가 소유하게 되며, 원격 테이블과 일치하도록 올바른 열 정의와 옵션으로 생성돼요.
기본적으로 외부 서버의 특정 스키마에 존재하는 모든 테이블과 뷰를 가져와요. 선택적으로 테이블 목록을 지정된 하위 집합으로 제한하거나, 특정 테이블을 제외할 수 있어요. 새 외부 테이블은 모두 대상 스키마에 생성되는데, 대상 스키마는 이미 존재해야 해요.
IMPORT FOREIGN SCHEMA를 사용하려면 사용자가 외부 서버에 대한 USAGE 권한과 대상 스키마에 대한 CREATE 권한을 가져야 해요.
파라미터 (Parameters)
*remote_schema* — 가져올 원격 스키마예요. 원격 스키마의 구체적인 의미는 사용 중인 외부 데이터 래퍼(foreign data wrapper)에 따라 달라져요.
LIMIT TO ( table_name [, ...] ) — 주어진 테이블 이름 중 하나와 일치하는 외부 테이블만 가져와요. 외부 스키마에 존재하는 다른 테이블은 무시돼요.
EXCEPT ( table_name [, ...] ) — 지정된 외부 테이블을 가져오기에서 제외해요. 외부 스키마에 존재하는 모든 테이블을 가져오되 여기 나열된 것은 제외해요.
*server_name* — 가져올 외부 서버예요.
*local_schema* — 가져온 외부 테이블이 생성될 스키마예요.
OPTIONS ( option 'value' [, ...] ) — 가져오는 동안 사용할 옵션이에요. 허용되는 옵션 이름과 값은 각 외부 데이터 래퍼에 따라 다르답니다.
예제 (Examples)
서버 film_server의 원격 스키마 foreign_films에서 테이블 정의를 가져와, 로컬 스키마 films에 외부 테이블을 만들려면:
IMPORT FOREIGN SCHEMA foreign_films
FROM SERVER film_server INTO films;
위와 같지만 actors와 directors 두 테이블만 가져오려면(있을 경우):
IMPORT FOREIGN SCHEMA foreign_films LIMIT TO (actors, directors)
FROM SERVER film_server INTO films;
호환성 (Compatibility)
IMPORT FOREIGN SCHEMA 명령은 OPTIONS 절이 PostgreSQL 확장이라는 점을 제외하면 SQL 표준에 부합해요.
더 알아보기 (Learn more)
외부 테이블을 직접 만드는 방법은 CREATE FOREIGN TABLE 문서를, 외부 서버를 정의하는 방법은 CREATE SERVER 문서를 함께 보면 좋아요.