PostgreSQL中“TEXT”数据类型的最大大小是多少?

42

我正在使用Python进行开发。

在Postgres中,我有一个“文本”数据类型的字段。每当我尝试保存一个非常大的字符串时,Python会抛出内部错误,但如果我保存小一些的字符串,它就可以正常保存。

我不理解这个问题。是不是“TEXT”数据类型有输入字符的最大限制?


什么是错误?你确定在大文本中没有任何可能破坏查询的字符,比如“?”吗? - Habib
有没有限制列大小的约束? - luke2012
具体的错误信息是什么?抛出错误的代码行是什么样子的? - user unknown
我猜你的问题是你不小心在使用固定长度的varchar? - rogerdpack
1个回答

68

根据手册所述:

无论如何,可存储的最长字符串长度约为1 GB。


第一次保存了大字符串。但是当尝试添加一个额外字符再次保存时,会出现“INTERNAL SERVER ERROR: TRANSACTIONS ABORTED UNTIL END OF THE BLOCK”的错误。 - user977933
4
查看日志文件以查看所有错误消息,这似乎是最后一个错误消息,但它并没有提供任何有用的信息。 - Frank Heikens
2
这是100%正确的吗?从[手册](https://www.postgresql.org/docs/current/static/datatype-character.html)中还指出:(数据类型声明中允许的n的最大值小于该值。更改此值将没有用处,因为使用多字节字符编码时字符数和字节数可能非常不同。如果您希望存储没有特定上限的长字符串,请使用text或character varying而不是制定任意长度限制。) - Carlos
1
@Carlos - 看起来这句话的意思是,对于相同大小(在这种情况下为1GB)的文本,由于编码原因,可能会有不同数量的字符。 - Oto Shavadze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接