134 votes

Quelle est la différence entre CHARACTER VARYING et VARCHAR dans PostgreSQL ?

John utilise CHARACTER VARYING dans les endroits où j'utilise VARCHAR . Je suis un débutant, alors que lui est un expert. Cela me suggère qu'il y a quelque chose que je ne sais pas.

Quelle est la différence entre CHARACTER VARYING et VARCHAR dans PostgreSQL ?

149voto

Charles Ma Points 12330

VARCHAR est un alias pour CHARACTER VARYING donc aucune différence, voir documentation :)

Les notations varchar(n) et char(n) sont des alias pour le caractère variant(n) et character(n), respectivement. Un caractère sans spécification de longueur est équivalent à character(1). Si caractère variable est utilisé sans spécificateur de longueur, le type accepte chaînes de caractères de n'importe quelle taille. Ce dernier est une extension de PostgreSQL.

12 votes

C'est l'inverse : varchar est un alias pour varying. Je ne veux pas être pédant, mais c'est juste là, dans votre citation.

3 votes

@zerzevul On pourrait ne pas être d'accord avec la documentation et être d'accord avec Charles ici, étant donné que varchar(n) etc. sont les standards ANSI et cette syntaxe est propre à PostgreSQL.

23voto

Greg Hewgill Points 356191

El Documentation PostgreSQL sur les types de caractères est une bonne référence en la matière. Il s'agit de deux noms différents pour le même type.

7voto

inor Points 489

La seule différence est que CHARACTER VARYING est plus convivial que VARCHAR.

6voto

Gordon Hopper Points 190

La réponse courte : il n'y a pas de différence.

La réponse longue : CHARACTER VARYING est le nom de type officiel de la norme ANSI SQL, que toutes les bases de données conformes doivent prendre en charge. VARCHAR est un alias plus court que toutes les bases de données modernes supportent également. Je préfère VARCHAR parce qu'il est plus court et parce que le nom plus long semble pédant. Cependant, les outils postgres comme pg_dump y \d produira character varying .

3voto

Daya Shanker Points 41

Les deux sont la même chose, mais beaucoup de bases de données ne fournissent pas le caractère variable, principalement postgreSQL. Donc pour les bases de données multiples comme Oracle Postgre et DB2, il est préférable d'utiliser le Varchar.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X