Обмеження розміру символів, що змінюється Postgresql


22

Яка обмеження розміру різних типів даних у postgresql? Я бачив де - то , що для character varying(n), varchar(n) nповинен знаходитися в діапазоні від 1 до 10485760. Це правда?

Які допустимі розміри для character(n), char(n)а text?

Відповіді:


25

Максимальний розмір обмежених типів символів (наприклад, varchar (n)) у Postgres - 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)

Максимальна кількість символів для змінних типів необмеженої довжини (текст, варшар) не визначена. Існує обмеження розміру в байтах для всіх типів рядків :

У будь-якому випадку, найдовший можливий рядок символів, який можна зберегти, становить близько 1 ГБ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.