web-dev-qa-db-fra.com

Limite de taille du caractère variant Postgresql

Quelle est la taille limite des différents types de données dans postgresql? J'ai vu quelque part que pour character varying(n), varchar(n)n doit être compris entre 1 et 10485760. Est-ce vrai?

Quelles sont les tailles valides pour character(n), char(n) et text?

25
Fredy De La Cruz

La taille maximale des types de caractères limités (par exemple varchar (n)) dans Postgres est 10485760. Vous pouvez vérifier cela de cette manière:

create table test(id serial primary key, str varchar(10485761));

ERROR:  length for type varchar cannot exceed 10485760

La limite est définie dans le fragment de code source suivant (htup_details.h), mais n'est pas explicitement mentionnée dans la documentation officielle:

/*
 * 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)

Le nombre maximal de caractères pour les types de longueur illimitée variable (texte, varchar) n'est pas défini. Il y a une limite de taille en octets pour tous les types de chaînes :

Dans tous les cas, la chaîne de caractères la plus longue pouvant être stockée est d'environ 1 Go.

29
klin