Límite de tamaño de caracteres que varía Postgresql


20

¿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) ndebe estar entre 1 y 10485760. ¿Es eso cierto?

¿Cuáles son los tamaños válidos character(n), char(n)y text?

Respuestas:


24

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.