Каково ограничение на размер различных типов данных в 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)
Максимальное количество символов для переменных переменных неограниченной длины (текст, varchar) не определено. Существует ограничение размера в байтах для всех типов строк :
В любом случае самая длинная строка символов, которую можно сохранить, составляет около 1 ГБ.