约翰在我使用CHARACTER VARYING
的地方使用VARCHAR
. 我是初学者,他是专家。这表明我有一些我不知道的东西。
PostgreSQL 中的 CHARACTER VARYING 和 VARCHAR 有什么区别?
约翰在我使用CHARACTER VARYING
的地方使用VARCHAR
. 我是初学者,他是专家。这表明我有一些我不知道的东西。
PostgreSQL 中的 CHARACTER VARYING 和 VARCHAR 有什么区别?
VARCHAR
是 的别名CHARACTER VARYING
,所以没有区别,请参阅文档:)
符号 varchar(n) 和 char(n) 分别是 character varying(n) 和 character(n) 的别名。没有长度说明符的字符等效于字符(1)。如果在没有长度说明符的情况下使用字符变化,则该类型接受任何大小的字符串。后者是 PostgreSQL 扩展。
关于字符类型的PostgreSQL 文档是一个很好的参考。它们是同一类型的两个不同名称。
唯一的区别是 CHARACTER VARYING 比 VARCHAR 更人性化
简短的回答:没有区别。
长答案:CHARACTER VARYING
是 ANSI SQL 标准的官方类型名称,所有兼容的数据库都需要支持。VARCHAR
是一个较短的别名,所有现代数据库也都支持。我更喜欢VARCHAR
它,因为它更短,因为更长的名字感觉很迂腐。但是,postgres 工具喜欢pg_dump
并且\d
会输出character varying
.
两者是相同的,但许多数据库没有提供主要是 postgreSQL 提供的不同字符。所以对于像 Oracle Postgre 和 DB2 这样的多数据库,最好使用 Varchar