본문 바로가기
PostgreSQL

[PostgreSQL] schema 조회,생성,변경,삭제

by Ssun's 2021. 3. 29.

※ 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

댓글