145

约翰在我使用CHARACTER VARYING的地方使用VARCHAR. 我是初学者,他是专家。这表明我有一些我不知道的东西。

PostgreSQL 中的 CHARACTER VARYING 和 VARCHAR 有什么区别?

4

5 回答 5

159

VARCHAR是 的别名CHARACTER VARYING,所以没有区别,请参阅文档:)

符号 varchar(n) 和 char(n) 分别是 character varying(n) 和 character(n) 的别名。没有长度说明符的字符等效于字符(1)。如果在没有长度说明符的情况下使用字符变化,则该类型接受任何大小的字符串。后者是 PostgreSQL 扩展。

于 2009-07-29T11:10:39.857 回答
23

关于字符类型的PostgreSQL 文档是一个很好的参考。它们是同一类型的两个不同名称。

于 2009-07-29T11:12:20.947 回答
7

唯一的区别是 CHARACTER VARYING 比 VARCHAR 更人性化

于 2014-09-30T10:34:26.797 回答
6

简短的回答:没有区别。

长答案:CHARACTER VARYING是 ANSI SQL 标准的官方类型名称,所有兼容的数据库都需要支持。VARCHAR是一个较短的别名,所有现代数据库也都支持。我更喜欢VARCHAR它,因为它更短,因为更长的名字感觉很迂腐。但是,postgres 工具喜欢pg_dump并且\d会输出character varying.

于 2019-12-02T17:33:01.687 回答
3

两者是相同的,但许多数据库没有提供主要是 postgreSQL 提供的不同字符。所以对于像 Oracle Postgre 和 DB2 这样的多数据库,最好使用 Varchar

于 2016-01-08T10:20:51.350 回答