728x90
반응형
Postgresql 테이블명 길이는 UTF-8 DB인 경우 63Byte 까지로 제한되어 있다.(영문/숫자 1Byte, 한글 3Byte)
확인버전
- Postgreql 13.1
- Greenplum 6.11(Postgresql 9.4)
테이블명만 제한되어 있는줄 알았으나 모든 오브젝트의 이름이 제한되어 있는 것을 공식사이트에서 확인할 수 있다.
Postgresql 제한관련 정보 - https://www.postgresql.org/docs/13/limits.html
재미있는 사실은 재컴파일을 하면 길이제한 설정값을 조정할 수가 있는 것 같다.
DB 캐릭터셋 확인
-- DB 캐릭터셋 확인
select datname
, datctype
from pg_database
where datname = 'postgres'
문제는 테이블명이 63Byte가 넘어가면 에러가 발생되면서 테이블을 생성을 하지 말아야 하는데 자동으로 길이를 제한하고 생성을 진행한다는 것이다.
DBeaver에서 테이블을 생성하면 NOTICE 문구를 확인하여 길이제한을 확인할 수 있으나 JDBC 를 이용한 자바프로그램을 이용하여 테이블을 생성하면 SQLWarnings을 구현하지 않는 이상 확인할 수가 없다.
-- 한글 한글자는 3Byte, 영문/숫자는 1Byte
-- ~123까지만 테이블이 생성된다.
create table public.가가가가가가가가가가나나나나나나나나나나1234 (
no serial primary key
, title varchar(300)
, memo text
, create_dt timestamp default current_timestamp
)
SQL경고메세지 : identifier "가가가가가가가가가가나나나나나나나나나나1234" will be truncated to "가가가가가가가가가가나나나나나나나나나나123"
테이블을 조회할때에도 자동으로 길이를 제한하고 테이블을 조회한다. 그래서 ~1234 테이블이 존재하지 않으나 ~1234 테이블이 조회되는 것처럼 SQL Tool에서 표시된다.
현재 구동중인 Postgresql/Greenplum 의 오브젝트 길이제한 설정값을 확인할 수 있다.
-- 오브젝트 길이제한 설정값 확인
show max_identifier_length
728x90
반응형
'Database > Postgresql' 카테고리의 다른 글
윈도우환경에서 Postgresql Command Line Tools(psql,pg_dump) 설치하기 (0) | 2022.01.26 |
---|---|
[Postgresql/Greenplum] Order by Collate/NULLS 를 이용하여 데이터 정렬기준 변경하기 (0) | 2022.01.01 |
postgresql/greenplum uptime을 to_char 함수로 보기편하게 변경하기 (0) | 2021.04.04 |
[Postgresql] general_series 함수를 이용한 더미데이터 만드는 방법 (0) | 2021.02.26 |
PGTune 을 이용하여 postgresql.conf 파라미터 설정하기 (0) | 2021.01.26 |