[PostgreSQL] 스키마 관리 (생성, 삭제 등)
스키마 관리
PostgreSQL의 Schema 개념은 Oracle의 Schema 개념과 조금 다릅니다. Oracle의 Schema는 오브젝트를 가진 User를 의미하는 반면, PostgreSQL에서는 Table의 집합을 Schema라고 표현하며 이 Schema는 하나의 Database를 논리적으로 나누는 개념이라 볼 수 있습니다. 여러 User가 하나의 Schema 안에 Table을 생성할 수 있다는 의미인 것입니다.
스키마 생성
CREATE SCHEMA [IF NOT EXISTS] [schema_name] AUTHORIZATION [user_name];
CREATE SCHEMA testsch AUTHORIZATION postgres;
스키마 이름 수정
ALTER SCHEMA [schema_oldname] RENAME TO [schema_newname];
ALTER SCHEMA testsch RENAME TO newsch;
스키마 소유자 변경
ALTER SCHEMA [schema_name] OWNER TO [username];
ALTER SCHEMA newsch OWNER TO newowner;
스키마 조회 순서 확인
SHOW SEARCH_PATH;
SEARCH_PATH 일시적용
SET SEARCH_PATH TO Schema1, Schema2, ...;
SET SEARCH_PATH TO bbb, aaa;
SEARCH_PATH 영구적용
ALTER ROLE [username] SET SEARCH_PATH = Schema1, Schema2, ...;
ALTER ROLE postgres SET SEARCH_PATH = aaa, bbb;
SEARCH_PATH 초기화
ALTER ROLE [username] RESET SEARCH_PATH;
ALTER ROLE postgres RESET SEARCH_PATH;
스키마 삭제 방법
DROP SCHEMA [schema_name] [CASCADE | RESTRICT];
DROP SCHEMA aaa CASCADE;
* 기본값은 RESTRICT, CASCADE 옵션을 지정하면 Schema 하위에 연결 된 객체를 모두 강제 삭제하므로 사용에 주의