Tekst typu danych PostgreSQL vs varchar bez długości

10

W PostgreSQL możesz utworzyć kolumnę ze zmiennymi znakami typu danych (bez precyzji długości) lub tekstem w następujący sposób:

ALTER TABLE test ADD COLUMN c1 varchar;
ALTER TABLE test ADD COLUMN c2 text;

Czy istnieje różnica między tymi dwoma typami danych?

Dokumentacja nie jest do końca jasna. Mówią :

Jeśli zmienna znakowa jest używana bez specyfikatora długości, typ akceptuje łańcuchy o dowolnym rozmiarze.

[...]

Ponadto PostgreSQL zapewnia typ tekstu , który przechowuje ciągi dowolnej długości.

Wygląda na to, że te dwa typy danych są równoważne, ale nie są jednoznaczne ... Więcej informacji na ten temat?

Dziękuję, Nico

Nicolas Payart
źródło
7
Zobacz odpowiedź na serverfault.com
Daniel Vérité

Odpowiedzi:

5

Nie ma różnicy między tymi dwoma typami danych. Używają dokładnie tego samego magazynu i tych samych operatorów.

Josh Berkus
źródło