목차

PostgreSQL 팁 모음

SELECT TABLE_NAME as 테이블이름, column_name as 컬럼명,
is_nullable as null가능여부,
data_type as 데이터타입,
character_maximum_length as 최대길이,
character_octet_length,
numeric_precision,
numeric_precision_radix,
numeric_scale
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'DB이름'
and table_schema = 'public' -- 혹은 스키마 이름
ORDER BY 테이블이름, ORDINAL_POSITION;

spatial_ref_sys 테이블에 데이터가 없어서 발생하는 오류. spatial_ref_sys.csv 파일을 import 하여 해결.


\copy 테이블명 to '파일경로/테이블명.csv' with delimiter ',' csv header
\copy (쿼리) to '파일경로/테이블명.csv' with delimiter ',' csv header

\copy (select * from pg_stat_user_indexes) to '파일경로/pg_stat_user_indexes.csv' with delimiter ',' csv header

-- 일반 계정
CREATE USER 유저명 WITH PASSWORD '비밀번호';

-- 슈퍼유저 계정
CREATE USER 유저명 PASSWORD '비밀번호' SUPERUSER;
# 유저삭제권한
ALTER USER 유저명 WITH ERATEUSER;

# db생성, 복제권한
ALTER USER 유저명 WITH CREATEDB, REPLICATION;

자세한 create role 관련 옵션은 요거를 참고하시면 좋습니다. 우리의 도큐먼트 https://postgresql.kr/docs/11/sql-createrole.html

-- 특정 테이블 읽기 권한
GRANT SELECT ON 테이블이름 TO "user명";

-- 모든 테이블 읽기 권한
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO 유저명;

-- 미래에 추가될 테이블에도 자동으로 읽기 권한 부여
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO 유저명;