ขีด จำกัด ขนาดของประเภทข้อมูลต่างๆใน postgresql คือเท่าไหร่ ผมเห็นบางที่สำหรับcharacter varying(n)
, varchar(n)
n
ต้องอยู่ระหว่าง 1 ถึง 10485760. ว่าเป็นความจริง?
อะไรคือขนาดที่ถูกต้องสำหรับcharacter(n)
, char(n)
และtext
?
ขีด จำกัด ขนาดของประเภทข้อมูลต่างๆใน postgresql คือเท่าไหร่ ผมเห็นบางที่สำหรับcharacter varying(n)
, varchar(n)
n
ต้องอยู่ระหว่าง 1 ถึง 10485760. ว่าเป็นความจริง?
อะไรคือขนาดที่ถูกต้องสำหรับcharacter(n)
, char(n)
และtext
?
คำตอบ:
ขนาดสูงสุดของประเภทอักขระที่ จำกัด (เช่น varchar (n)) ใน Postgres คือ 10485760 คุณสามารถตรวจสอบได้ด้วยวิธีนี้:
create table test(id serial primary key, str varchar(10485761));
ERROR: length for type varchar cannot exceed 10485760
ขีด จำกัด ถูกกำหนดในส่วนของซอร์สโค้ดต่อไปนี้ (htup_details.h) อย่างไรก็ตามไม่ได้กล่าวถึงอย่างชัดเจนในเอกสารประกอบอย่างเป็นทางการ:
/*
* 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)
จำนวนอักขระสูงสุดสำหรับประเภทความยาวไม่ จำกัด ตัวแปร (ข้อความ, varchar) ไม่ได้ถูกกำหนด มีการ จำกัด ขนาดเป็นไบต์สำหรับสตริงทุกประเภท :
ไม่ว่าในกรณีใด ๆ สตริงอักขระที่ยาวที่สุดที่สามารถเก็บได้คือประมาณ 1 GB