John usa CHARACTER VARYING
nos lugares onde eu uso VARCHAR
. Eu sou um iniciante, enquanto ele é um especialista. Isso me sugere que há algo que eu não sei.
Qual é a diferença entre CHARACTER VARYING e VARCHAR no PostgreSQL?
John usa CHARACTER VARYING
nos lugares onde eu uso VARCHAR
. Eu sou um iniciante, enquanto ele é um especialista. Isso me sugere que há algo que eu não sei.
Qual é a diferença entre CHARACTER VARYING e VARCHAR no PostgreSQL?
Respostas:
Varying é um apelido para varchar, portanto, não há diferença, consulte a documentação :)
As notações varchar (n) e char (n) são apelidos para character Variaing (n) e character (n), respectivamente. caractere sem especificador de comprimento é equivalente a caractere (1). Se a variação de caractere for usada sem especificador de comprimento, o tipo aceita strings de qualquer tamanho. O último é uma extensão do PostgreSQL.
varchar(n)
, etc. são os padrões ANSI e esta sintaxe é peculiar ao PostgreSQL.
A documentação do PostgreSQL sobre os tipos de caracteres é uma boa referência para isso. Eles são dois nomes diferentes para o mesmo tipo.
A única diferença é que CHARACTER VARYING é mais amigável do que VARCHAR
Ambos são a mesma coisa, mas muitos dos bancos de dados não estão fornecendo os caracteres variáveis que o postgreSQL fornece. Portanto, para bancos de dados múltiplos como Oracle Postgre e DB2, é bom usar o Varchar
A resposta curta: não há diferença.
A resposta longa: CHARACTER VARYING
é o nome de tipo oficial do padrão ANSI SQL, que todos os bancos de dados compatíveis devem oferecer suporte. VARCHAR
é um apelido mais curto que todos os bancos de dados modernos também suportam. Prefiro VARCHAR
porque é mais curto e porque o nome mais longo parece pedante. No entanto, as ferramentas do postgres gostam pg_dump
e \d
produzirão character varying
.