[07] PostgreSQL – ALTER 데이터베이스
일단 생성된 데이터베이스의 기능은 ALTER DATABASE 문을 사용하여 변경할 수 있습니다.
1
|
ALTER DATABASE target_database action;
|
cs |
위의 구문에서 설명하는 것처럼 수정이 수행될 데이터베이스는 ALTER DATABASE 문 다음에 데이터베이스에서 수행될 작업이 뒤에 언급됩니다.
다음은 PostgreSQL에서 허용하는 작업 목록입니다.
데이터베이스 이름 바꾸기:
1
|
ALTER DATABASE target_database RENAME TO new_database;
|
cs |
데이터베이스 소유자 변경:
ALTER DATABASE OWNER TO 문은 다음과 같이 데이터베이스 소유자를 변경하는 데 사용됩니다.
1
|
ALTER DATABASE target_database OWNER TO new_owner;
|
cs |
수퍼유저 또는 데이터베이스 소유자만 이 작업을 수행할 수 있다는 점에 유의해야 합니다.
데이터베이스의 테이블스페이스를 변경:
ALTER DATABASE SET TABLESPACE 문은 다음과 같이 데이터베이스의 기본 테이블스페이스를 변경하는 데 사용됩니다.
1
|
ALTER DATABASE target_database SET TABLESPACE new_tablespace;
|
cs |
이 명령문은 레거시 테이블스페이스에서 새 테이블스페이스로 테이블과 인덱스를 이동합니다.
런타임 구성 변수에 대한 세션 기본값 변경:
기본적으로 PostgreSQL은 postgresql.conf 파일에서 구성 변수를 로드합니다. 이 파일에는 데이터베이스 역할 및 각각의 인증 해싱 유형에 대한 정보가 포함되어 있습니다. 이러한 설정 또는 정보는 아래와 같이 ALTER DATABASE SET 문을 사용하여 편집할 수 있습니다.
1
|
ALTER DATABASE target_database SET config_data = value;
|
cs |
수퍼유저 또는 데이터베이스 소유자만이 데이터베이스의 기본 세션 변수를 변경할 수 있다는 점에 유의해야 합니다.
이제 ALTER DATABASE 문을 구현한 예를 살펴보자.
예시:
Postgres 사용자로 로그인하고 아래 명령을 사용하여 샘플 데이터베이스(예: my_test_db)를 생성해 보겠습니다.
1
|
CREATE DATABASE my_test_db;
|
cs |
이제 아래 명령을 사용하여 데이터베이스 이름을 "my_test_db"에서 "my_renamed_db"로 바꿉니다.
1
|
ALTER DATABASE my_test_db RENAME TO my_renamed_db;
|
cs |
이제 "geeks" 역할이 이미 존재한다고 가정하고 다음 명령문을 실행하여 "my_renamed_db" 데이터베이스의 소유자를 "postgres"에서 "geeks"로 변경합니다.
1
|
ALTER DATABASE my_renamed_db OWNER TO geeks;
|
cs |
"geeks" 역할이 없으면 다음 문을 사용하여 만듭니다.
1
2
|
CREATE ROLE geeks
VALID UNTIL 'infinity';
|
cs |
이제 geeks_defaulttablespace가 이미 존재한다는 가정하에 my_renamed_db의 기본 테이블스페이스를 pg_default에서 geeks_default로 변경합니다.
1
2
|
ALTER DATABASE my_renamed_db
SET TABLESPACE geeks_default;
|
cs |
geeks_defaulttablespace가 없으면 다음 명령문을 사용하여 생성할 수 있습니다.
1
2
3
|
CREATE TABLESPACE geeks_default
OWNER geeks
LOCATION E'C:\\pgdata\\geeks';
|
cs |
이제 아래 명령을 사용하여 escape_string_warning 구성 변수를 off로 설정합니다.
1
|
ALTER DATABASE my_renamed_db SET escape_string_warning TO off;
|
cs |
'공부 > PostgreSQL' 카테고리의 다른 글
[09] PostgreSQL – 데이터베이스 보기 (Show) (0) | 2023.04.12 |
---|---|
[08] PostgreSQL – 데이터베이스 이름 바꾸기 (0) | 2023.04.11 |
[06] PostgreSQL – 데이터베이스 로드 (0) | 2023.04.11 |
[05] PostgreSQL – 데이터베이스 생성 (0) | 2023.04.11 |
[04] Mac에 PostgreSQL 설치 방법 (0) | 2023.04.11 |
댓글