Яка обмеження розміру різних типів даних у postgresql? Я бачив де - то , що для character varying(n)
, varchar(n)
n
повинен знаходитися в діапазоні від 1 до 10485760. Це правда?
Які допустимі розміри для character(n)
, char(n)
а text
?
Яка обмеження розміру різних типів даних у postgresql? Я бачив де - то , що для character varying(n)
, varchar(n)
n
повинен знаходитися в діапазоні від 1 до 10485760. Це правда?
Які допустимі розміри для character(n)
, char(n)
а text
?
Відповіді:
Максимальний розмір обмежених типів символів (наприклад, 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 ГБ.