¿Cuál es la diferencia entre CHARACTER VARYING y VARCHAR en PostgreSQL?

114

John usa CHARACTER VARYINGen los lugares donde yo uso VARCHAR. Yo soy un principiante, mientras que él es un experto. Esto me sugiere que hay algo que no sé.

¿Cuál es la diferencia entre CHARACTER VARYING y VARCHAR en PostgreSQL?

Léo Léopold Hertz 준영
fuente

Respuestas:

128

Varchar es un alias para varchar, por lo que no hay diferencia, consulte la documentación :)

Las notaciones varchar (n) y char (n) son alias para caracteres que varían (n) y carácter (n), respectivamente. carácter sin especificador de longitud es equivalente al carácter (1). Si se usa la variación de caracteres sin un especificador de longitud, el tipo acepta cadenas de cualquier tamaño. Este último es una extensión de PostgreSQL.

Charles Ma
fuente
9
Es al revés: varchar es un alias para variar. No quiero ser pedante, pero está ahí en su cita.
zerzevul
2
@zerzevul Uno podría no estar de acuerdo con la documentación y estar de acuerdo con Charles aquí, dado que varchar(n), etc., son los estándares ANSI y esta sintaxis es peculiar de PostgreSQL.
BobRodes
4

La única diferencia es que CHARACTER VARYING es más amigable para los humanos que VARCHAR

En o
fuente
1
@joop No he tenido el privilegio de estar expuesto a COBOL pero he estado expuesto al inglés y pienso "VARCH ARe qué?" :-)
inor
8
Además, creo que es confuso a los mejores programadores;) Están acostumbrados a varchar
manocha_ak
3

Ambos son lo mismo, pero muchas de las bases de datos no proporcionan los caracteres variables que proporciona principalmente postgreSQL. Entonces, para la base de datos múltiple como Oracle Postgre y DB2, es bueno usar Varchar

Daya Shanker
fuente
2

La respuesta corta: no hay diferencia.

La respuesta larga: CHARACTER VARYING es el nombre de tipo oficial del estándar ANSI SQL, que deben admitir todas las bases de datos compatibles. VARCHARes un alias más corto que también admiten todas las bases de datos modernas. Prefiero VARCHARporque es más corto y porque el nombre más largo se siente pedante. Sin embargo, a las herramientas de Postgres les gusta pg_dumpy \dgenerarán character varying.

Gordon Hopper
fuente