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


Answers:


128

Varying是varchar的别名,所以没有区别,请参阅文档 :)

标记varchar(n)和char(n)分别是字符variant(n)和character(n)的别名。没有长度说明符的字符等同于character(1)。如果使用不带长度说明符的字符变化,则该类型接受任何大小的字符串。后者是PostgreSQL扩展。


9
与此相反:varchar是变化的别名。不必学究,但就在您的报价中。
zerzevul

2
@zerzevul鉴于varchar(n)等等是ANSI标准,并且该语法是PostgreSQL特有的,因此可能会与文档不同而在这里与Charles相同。
BobRodes


4

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


1
@joop我没有接触过COBOL的特权,但是我接触过英语,我想“ VARCH ARe是什么?” :-)
2014年

8
另外,我认为这会让顶级程序员感到困惑;)他们习惯了varchar
manocha_ak 2015年

3

两者是同一件事,但是许多数据库没有提供主要由postgreSQL提供的可变字符。因此,对于像Oracle Postgre和DB2这样的多数据库,最好使用Varchar


2

简短的答案:没有区别。

长答案:CHARACTER VARYING是ANSI SQL标准中的正式类型名称,所有兼容数据库都必须支持。VARCHAR是所有现代数据库都支持的较短别名。我更喜欢VARCHAR它,因为它较短,而且较长的名称让人感觉很古怪。但是,postgres工具类似pg_dump\d将输出character varying

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.