¿Cuál es el límite de tamaño de varios tipos de datos en postgresql? Vi en alguna parte que character varying(n)
, varchar(n)
n
debe estar entre 1 y 10485760. ¿Es eso cierto?
¿Cuáles son los tamaños válidos character(n)
, char(n)
y text
?
¿Cuál es el límite de tamaño de varios tipos de datos en postgresql? Vi en alguna parte que character varying(n)
, varchar(n)
n
debe estar entre 1 y 10485760. ¿Es eso cierto?
¿Cuáles son los tamaños válidos character(n)
, char(n)
y text
?
Respuestas:
El tamaño máximo de los tipos de caracteres limitados (por ejemplo, varchar (n)) en Postgres es 10485760. Puede verificar esto de esa manera:
create table test(id serial primary key, str varchar(10485761));
ERROR: length for type varchar cannot exceed 10485760
El límite se define en el siguiente fragmento de código fuente (htup_details.h), sin embargo, no se menciona explícitamente en la documentación oficial:
/*
* 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)
El número máximo de caracteres para los tipos de longitud ilimitada variable (texto, varchar) no está definido. Hay un límite de tamaño en bytes para todos los tipos de cadenas :
En cualquier caso, la cadena de caracteres más larga posible que se puede almacenar es de aproximadamente 1 GB.