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
?
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.