Jaka jest różnica między CHARACTER VARYING i VARCHAR w PostgreSQL?


115

John używa CHARACTER VARYINGw miejscach, w których ja używam VARCHAR. Jestem początkującym, a on jest ekspertem. To sugeruje mi, że jest coś, czego nie wiem.

Jaka jest różnica między CHARACTER VARYING i VARCHAR w PostgreSQL?

Odpowiedzi:


129

Varying to alias dla varchar, więc bez różnicy, zobacz dokumentację :)

Notacje varchar (n) i char (n) są aliasami odpowiednio dla znaków zmiennych (n) i znaków (n). znak bez specyfikatora długości jest równoważny ze znakiem (1). Jeśli zmienne znaki są używane bez specyfikatora długości, typ akceptuje ciągi o dowolnym rozmiarze. To ostatnie jest rozszerzeniem PostgreSQL.


9
Jest odwrotnie: varchar to alias do zmiennych. Nie żeby być pedantycznym, ale jest to w twoim cytacie.
zerzevul

2
@zerzevul Można nie zgodzić się z dokumentacją i zgodzić się z Charlesem tutaj, biorąc pod uwagę, że varchar(n)itp. są standardy ANSI i ta składnia jest charakterystyczna dla PostgreSQL.
BobRodes


4

Jedyną różnicą jest to, że CHARACTER VARYING jest bardziej przyjazny człowiekowi niż VARCHAR


1
@joop Nie miałem przywileju bycia narażonym na COBOL, ale miałem kontakt z angielskim i myślę „VARCH ARe what?” :-)
inor

8
Obok myślę, że to jest mylące najlepszych programistów;) Są one wykorzystywane do varchar
manocha_ak

3

Obie są tym samym, ale wiele baz danych nie dostarcza różnych znaków, które zapewnia głównie PostgreSQL. Tak więc w przypadku wielu baz danych, takich jak Oracle Postgre i DB2, dobrze jest użyć Varchar


2

Krótka odpowiedź: nie ma różnicy.

Długa odpowiedź: CHARACTER VARYINGto oficjalna nazwa typu ze standardu ANSI SQL, który musi obsługiwać wszystkie zgodne bazy danych. VARCHARto krótszy alias, który obsługują również wszystkie nowoczesne bazy danych. Wolę, VARCHARponieważ jest krótszy i ponieważ dłuższa nazwa wydaje się pedantyczna. Jednak narzędzia postgres, takie jak pg_dumpi \dbędą generować pliki character varying.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.