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

Léo*_* 준영 96 database postgresql varchar varying

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

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

Cha*_* Ma 109

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

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

  • 与此相反:varchar是变化的别名。不必学究,但就在您的报价中。 (3认同)
  • @zerzevul 有人可能不同意文档,但同意 Charles 的观点,因为“varchar(n)”等是 ANSI 标准,并且这种语法是 PostgreSQL 所特有的。 (3认同)

Gre*_*ill 18

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


小智 6

简短的回答:没有区别。

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


ino*_*nor 5

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

  • 另外,我认为这会使顶级程序员感到困惑;)他们习惯了varchar (7认同)
  • @joop我没有接触过COBOL的特权,但我接触过英语,我想“VARCH是什么?” :-) (2认同)