일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CSS
- javascript
- date
- 문자열
- 이탈리아
- windows
- 자바스크립트
- Array
- 인텔리제이
- Eclipse
- IntelliJ
- js
- Java
- vscode
- input
- 테이블
- ArrayList
- CMD
- Visual Studio Code
- table
- 배열
- 이클립스
- string
- Button
- Maven
- Files
- 자바
- json
- html
- list
- Today
- Total
어제 오늘 내일
[postgres/SQL] database 생성, 수정, 삭제, 조회하기 본문
postgres에서 테이블을 생성하기 위해서는
그전에 database를 생성해야 합니다.
1. database 생성하기
create database my_db;
my_db 라는 데이터베이스를 생성하였습니다.
2. database 확인하기
select datname from pg_database;
등록된 모든 database의 이름을 조회합니다.
3. database 이름 변경하기
ALTER DATABASE my_db
RENAME TO new_my_db;
my_db 라는 database를 new_my_db 라는 이름으로 변경하였습니다.
4. database 삭제하기
drop database my_db;
my_db 데이터베이스를 삭제하였습니다.
my_db 데이터베이스가 없을 경우
ERROR: 오류: "my_db" 데이터베이스 없음 SQL state: 3D000 |
my_db 데이터베이스가 없을 경우,
위와 같이 에러가 발생합니다.
if exists 구문 추가
drop database if exists my_db;
에러를 방지하기 위해서 다음과 같이 'if exists' 구문을 추가해 줄 수 있습니다.
my_db 데이터베이스가 없을 경우 - if exists 구문을 추가한 경우
알림: "my_db" 데이터베이스 없음, 건너 뜀 DROP DATABASE Query returned successfully in 45 msec |
if exists 구문을 추가하여 database를 삭제한 경우,
my_db 데이터베이스가 없더라도
'알림' 메세지만 남기고,
쿼리는 에러를 발생시키지 않고 정상 종료됩니다.
5. database 수정/삭제 시 주의할 점
database를 수정하거나 삭제할 때,
해당 database를 사용하고 있는 활성 사용자가 있는 경우,
database를 수정/삭제할 수 없습니다.
따라서, 이 작업을 수행하기 전에 활성 사용자를 체크하고,
활성 연결을 종료한 해 주어야 합니다.
활성 연결 확인하기
SELECT *
FROM pg_stat_activity
WHERE datname = 'my_db';
pg_stat_activity 테이블을 조회하여
my_db 데이터베이스에 활성 연결된 사용자의 pid를 조회할 수 있습니다.
활성연결 종료하기
SELECT
pg_terminate_backend (pid)
FROM
pg_stat_activity
WHERE
datname = 'my_db';
pg_terminate_backend(pid) 함수를 이용하여
my_db 데이터 베이스에 활성 연결되어 있는 pid를 종료합니다.
pg_terminate_backend(pid)의 파라미터로
앞에서 조회한 pid를 넘겨줍니다.
postgres의 database를 생성, 수정, 삭제, 확인하는 SQL을 알아보았습니다.
'IT > postgres' 카테고리의 다른 글
[postgres] postgres 서버 버전 확인 하는 2가지 방법 (0) | 2022.02.28 |
---|