Sql ';的最小值和最大值是多少;n';在Postgres中创建表时,在字符(n)、字符变化(n)和文本数据类型中?

Sql ';的最小值和最大值是多少;n';在Postgres中创建表时,在字符(n)、字符变化(n)和文本数据类型中?,sql,postgresql,Sql,Postgresql,在上面的查询中,“n”的限制是多少 create table abc(name character(n), name1 character varying(n), name2 text); 在上面的查询中,如果我们没有为“n”指定任何值,将需要什么? 符号varchar(n)和char(n)分别是字符变化(n)和字符(n)的别名字符不带长度说明符等同于字符(1)。如果使用字符变化而不使用长度说明符,则该类型接受任何大小的字符串 再往下看: 在任何情况下,可以存储的最长字符串大约为1GB 创建

在上面的查询中,“n”的限制是多少

create table abc(name character(n), name1 character varying(n), name2 text); 
在上面的查询中,如果我们没有为“n”指定任何值,将需要什么?

符号
varchar(n)
char(n)
分别是
字符变化(n)
字符(n)
的别名<代码>字符不带长度说明符等同于
字符(1)
。如果使用
字符变化
而不使用长度说明符,则该类型接受任何大小的字符串

再往下看:

在任何情况下,可以存储的最长字符串大约为1GB


创建表时,字符和字符变化数据类型的“n”限制为

create table abc(name character(), name1 character varying(), name2 text);      
  • character(),如果在创建表时未将默认长度指定为字符(1),但可以将列值保留为空
  • character variating()如果不指定创建列时不会出现错误的长度,则可以在列中插入0到10485760个字符的值
  • 对于
    text
    数据类型,不能指定长度,可以在列中插入0到10485760个字符的值

这对我们来说根本不是真的PostgreSQL@pozs谢谢你的评论。请参考更新的答案。我很高兴听到你的评论。PostgreSQL,仍然。这些类型只有存储限制,但由于它可以使用UTF-8(默认情况下使用),UTF-8具有可变长度的字符表示,因此它们实际上没有可以存储的最大字符数。在
varchar(n)
中,n
n
限制为10485760个字符,请参见答案的其余部分显然不正确,阅读
                           MIN        MAX 
CHARACTER(n)          -->    1    to   10485760 characters(not bytes)
CHARACTER VARYING(n)  -->    1    to   10485760 characters(not bytes)