Postgresql'deki çeşitli veri türlerinin boyut sınırı nedir? İçin ben testere yerde character varying(n)
, varchar(n)
n
10485760. 1 arasında olmalıdır olduğu doğru mudur?
Ne için geçerli boyutları character(n)
, char(n)
ve text
?
Postgresql'deki çeşitli veri türlerinin boyut sınırı nedir? İçin ben testere yerde character varying(n)
, varchar(n)
n
10485760. 1 arasında olmalıdır olduğu doğru mudur?
Ne için geçerli boyutları character(n)
, char(n)
ve text
?
Yanıtlar:
Postgres'deki sınırlı karakter türlerinin (ör. Varchar (n)) maksimum boyutu 10485760'tır. Bunu şu şekilde kontrol edebilirsiniz:
create table test(id serial primary key, str varchar(10485761));
ERROR: length for type varchar cannot exceed 10485760
Sınır, aşağıdaki kaynak kodu (htup_details.h) parçasında tanımlanmıştır, ancak resmi belgelerde açıkça belirtilmemiştir:
/*
* 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)
Değişken sınırsız uzunluk türleri (metin, varchar) için maksimum karakter sayısı tanımsızdır. Tüm dize türleri için bayt cinsinden boyut sınırı vardır :
Her durumda, saklanabilecek mümkün olan en uzun karakter dizisi yaklaşık 1 GB'dir.