Giới hạn kích thước của ký tự thay đổi Postgresql


20

Giới hạn kích thước của các loại dữ liệu khác nhau trong postgresql là gì? Tôi đã thấy ở đâu đó rằng character varying(n), varchar(n) nphải nằm trong khoảng từ 1 đến 10485760. Điều đó có đúng không?

Các kích thước hợp lệ cho character(n), char(n)và là textgì?

Câu trả lời:


24

Kích thước tối đa của các loại ký tự giới hạn (ví dụ: varchar (n)) trong Postgres là 10485760. Bạn có thể kiểm tra điều này theo cách đó:

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

ERROR:  length for type varchar cannot exceed 10485760

Giới hạn được xác định trong đoạn mã nguồn sau (htup_details.h), tuy nhiên không được đề cập rõ ràng trong tài liệu chính thức:

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

Số lượng ký tự tối đa cho các loại độ dài không giới hạn thay đổi (văn bản, varchar) là không xác định. Có giới hạn kích thước tính bằng byte cho tất cả các loại chuỗi :

Trong mọi trường hợp, chuỗi ký tự dài nhất có thể được lưu trữ là khoảng 1 GB.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.