※ PostgreSQL에서의 스키마란?
- object들의 집합
- TABLE, VIEW, SEQUENCE, SYSNONYM, DOMAIN, FUNCTION 등의 OBJECT들로 구성
- SCHEMA를 사용하는 이유는 논리적집합체를 만들어 관리 편의성을 높이고 여러 사용자의 간섭없이 접속할 수 있게 한다.
1. 스키마 조회
- SELECT * FRO pg_catalog.pg_namespace;
- \dn
2. 스키마 생성
- 이름을 입력하지 않을 경우 USER의 이름이 SCHEMA이름으로 사용
: CREATE SCHEMA schema_name;
- 다른 유저 소유의 스키마 생성. (생략할 경우 접속되어있던 user가 defualt 값으로 저장됨_
(SUPERUSER만이 다른 USER가 소유한 스키마 생성 가능)
: CREATE SCHEMA AUTHORIZATION user_name
- schema_element [...]을 입력하여 SCHEMA 내에서 객체를 정의하는 SQL문을 작성
(CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, CREATE TRIGGER, GRANT등이 포함)
: CREATE SCHEMA AUTHORIZATION user_name [3. schema_element [ ... ] ]
: EX) 스키마 생성 TABLE 생성
CREATE SCHEMA TEST_S3
CREATE TABLE comtecopseq(table_name varchar(20));
- 특정 이름이 SCHEMA에 없을 경우 그 SCHEMA를 생성
: CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION user_name ]
- USER가 소유한 스키마가 존재하지 않을 때 스키마 생성
: CREATE SCHEMA IF NOT EXISTS AUTHORIZATION user_name
※ user의 조회경로에 스키마 추가
- ALTER USER user명 SET SEARCH_PATH="$USER", 스키마명, PUBLIC;
(DEFUALT가 "$USER", PUBLIC 이어서 스키마명 추가)
- SHOW SEARCH_PATH OR SELECT * fROM PG_CATALOG.PG_USER; 했을 때 조회 경로 확인 가능
- database의 기본 Search Path 변경
ALTER DATABASE DB명 SET search_path to "$USER", 스키마명, PUBLIC;
3. 스키마 변경
- 이름 변경
: ALTER SCHEMA 스키마명 RENAME TO 새로운스키마명;
- 소유자 변경
: ALTER SCHEMA name OWNER TO newowner
4. 스키마 삭제
- DROP SCHEMA 스키마명;
출처 : www.gurubee.net/lecture/2945
'PostgreSQL' 카테고리의 다른 글
[PostgreSQL] postgres_fdw (0) | 2021.05.24 |
---|---|
[PostgreSQL] DB링크(dblink) (0) | 2021.05.17 |
[PostgreSQL] database 조회, 생성, 변경, 삭제 (0) | 2021.03.26 |
[PostgreSQL] user 조회, 생성, 변경, 삭제 (0) | 2021.03.26 |
[PostgreSQL] pg_catalog (0) | 2021.03.26 |
댓글