Postgresql 명령어 정리

Postgresql 의 명령어를 간단히 정리해보겠습니다.

항상 잊어버리는 명령어를 기록해두기위한 차원입니다.

console 접속

$ psql database_name

접속 종료

-# \q

database list

-# \l

database create

CREATE DATABASE sentry WITH ENCODING='UTF8' OWNER=postgres;

database select

-# \c database_name

사용자 목록 표시

-# \du

Role 생성

-# CREATE ROLE <role name> WITH LOGIN;

Role 추가

ref: PostgreSQL: Documentation: 8.1: ALTER ROLE

-# ALTER ROLE <role name> WITH LOGIN CREATEDB;

Column 추가

phone 컬럼 추가: not null, default 값은 false

database_name-# ALTER TABLE users ADD COLUMN phone boolean not null default false;

Column 삭제

database_name-# ALTER TABLE users DROP COLUMN phone;

Constraint 추가

ALTER TABLE app_config
    ADD CONSTRAINT ukey_app_config_app_id UNIQUE (app_id);

Constraint 삭제

ALTER TABLE app_config
    DROP CONSTRAINT ukey_app_config_app_id;

table list

database_name-# \d

현 database의 모든 index list

database_name-# \di 

특정 테이블 정보 보기

users 테이블 정보 보기

database_name-# \d users

database dump

pg_dump 데이터베이스명 > 파일명.dump

$ pg_dump -Fc dbname > outfile

database restore

$ pg_restore --clean database_name my.dump

상세

  • —clean: database를 깨끗히 날리고 새로 생성
  • —no-owner: 소유자 정보는 복원할때 포함하지 않음
  • -h: host name
  • -U: user name
  • -d: database name
$ pg_restore --verbose --clean --no-owner -h localhost -U postgres -d database_name my.dump

sql file execute

  1. Shell
$ psql -U username -d myDataBase -a -f myInsertFile
  1. cli
\i path_to_sql_file