John używa CHARACTER VARYING
w 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?
John używa CHARACTER VARYING
w 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:
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.
varchar(n)
itp. są standardy ANSI i ta składnia jest charakterystyczna dla PostgreSQL.
Dokumentacja PostgreSQL dotycząca typów znaków jest dobrym źródłem informacji na ten temat. Są to dwie różne nazwy tego samego typu.
Jedyną różnicą jest to, że CHARACTER VARYING jest bardziej przyjazny człowiekowi niż VARCHAR
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
Krótka odpowiedź: nie ma różnicy.
Długa odpowiedź: CHARACTER VARYING
to oficjalna nazwa typu ze standardu ANSI SQL, który musi obsługiwać wszystkie zgodne bazy danych. VARCHAR
to krótszy alias, który obsługują również wszystkie nowoczesne bazy danych. Wolę, VARCHAR
ponieważ jest krótszy i ponieważ dłuższa nazwa wydaje się pedantyczna. Jednak narzędzia postgres, takie jak pg_dump
i \d
będą generować pliki character varying
.