Postgresql을 변경하는 문자의 크기 제한


22

postgresql에서 다양한 데이터 유형의 크기 제한은 무엇입니까? 에 대한 것을 I 톱의 어딘가에는 character varying(n), varchar(n) n10485760. 1 사이에 있어야합니다 그게 사실인가요?

무엇에 대한 유효한 크기는 character(n), char(n)text?

답변:


25

Postgres에서 제한된 문자 유형 (예 : varchar (n))의 최대 크기는 10485760입니다. 다음과 같은 방법으로이를 확인할 수 있습니다.

create table test(id serial primary key, str varchar(10485761));

ERROR:  length for type varchar cannot exceed 10485760

한계는 다음 소스 코드 조각 (htup_details.h)에 정의되어 있지만 공식 문서에는 명시 적으로 언급되어 있지 않습니다.

/*
 * MaxAttrSize is a somewhat arbitrary upper limit on the declared size of
 * data fields of char(n) and similar types.  It need not have anything
 * directly to do with the *actual* upper limit of varlena values, which
 * is currently 1Gb (see TOAST structures in postgres.h).  I've set it
 * at 10Mb which seems like a reasonable number --- tgl 8/6/00.
 */
#define MaxAttrSize     (10 * 1024 * 1024)

가변 무제한 길이 유형 (text, varchar)의 최대 문자 수는 정의되어 있지 않습니다. 모든 문자열 유형에 대해 바이트 크기 제한이 있습니다 .

어쨌든 저장할 수있는 가장 긴 문자열은 약 1GB입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.