PPAS(Postgresql) 대소문자(feat, 쌍따옴표)

phantom0308
2 min readJun 16, 2021

--

PostgreSQL 를 사용할 경우, 테이블 및 컬럼을 생성하게 되면, 기본적으로 테이블 객체를 소문자로 생성하게 된다. 그래서 테이블과 컬럼명을 대문자를 입력하여 생성하게 되면 아래와 같은 오류를 보게 된다.

nested exception is org.postgresql.util.PSQLException: ERROR: relation “TABLE_NAME” does not exist

대소문자를 구분하기 위해, TABLE_NAME 에 쌍따옴표를 붙혀서 사용하게 된다.

CREATE DATABASE TEST
- result : test
CREATE DATABASE test
- result : test

테이블명이 대문자 TEST인 경우라면,

SELECT * FROM test;
- result : 오류 발생
SELECT * FROM Test;
- result : 오류 발생
SELECT * FROM "TEST";
- result : 정상 실행

테이블명이 소문자 test인 경우라면,

SELECT * FROM test;
- result :정상 실행
SELECT * FROM Test;
- result :정상 실행
SELECT * FROM “TEST”;
- result :오류 발생
SELECT * FROM “test”;
- result :정상 실행

PostgreSQL을 사용하는 글들을 보면 가급적 다 소문자로 선언하라는 의견이 많은 듯 하다.(PostgreSQL 공식 문서에서는 대소문자 구분하기 위해 쌍따옴표를 사용하라는 내용이 있으므로, 대문자를 쓰는 것이 잘못 된 것은 아니다.)

또한, PostgreSQL 는 DB 구조가 Mysql, MSSQL 과 조금 다른데, 그 중 DB 명과 Schema 명이 다르다. 기본적으로 DB를 생성하게 되면, Public이라는 기본 Schema가 생성되나, 보안상 이유로 해당 Schema를 사용하지 않고, 새로 생성하여 사용하여야 한다. 고로 혼동하면 안된다.

아래는 DBMS별 JDBC 사용 시 연결 방법을 정리 해놓은 내용이다.

--

--

No responses yet