PostgreSQL podporuje znakový datový typ VARCHAR. Tento datový typ slouží k ukládání znaků omezené délky. V PostgreSQL je reprezentován jako varchar(n)
, kde n představuje omezení délky znaků. Pokud není n zadáno, je výchozí hodnotou varchar
, který má neomezenou délku. Jakýkoli pokus o uložení delšího řetězce do sloupce definovaného pomocí varchar(n)
vede k tomu, že PostgreSQL vypíše chybu. Výjimkou však je, že pokud jsou všechny přebytečné znaky mezery, PostgreSQL mezery zkrátí na maximální délku a řetězec uloží. Jedinou výhodou zadání specifikátoru délky pro datový typ varchar je, že PostgreSQL zkontroluje a vydá chybu, pokud se pokusíte do sloupce varchar(n) vložit delší řetězec.
Syntax: variable_name VARCHAR(n)
Příklad :
Vytvořme pro demonstraci novou tabulku (řekněme char_test) pomocí níže uvedených příkazů:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
Nyní vložíme nový řádek do tabulky char_test pomocí níže uvedeného příkazu:
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
V této fázi vyhodí PostgreSQL chybu, protože datový typ sloupce x je char(1) a my jsme se pokusili do tohoto sloupce vložit řetězec o třech znacích, jak ukazuje následující příkaz:
ERROR: value too long for type character varying(1)
Nyní to tedy opravíme.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
Nyní dostaneme stejnou chybu pro sloupec y, protože počet zadaných znaků je větší než 10, jak je ukázáno níže:
ERROR: value too long for type character varying(10)
Takže to opravíme.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
Když se nám nyní podařilo úspěšně přiřadit hodnoty ke znakovému datovému typu, zkontrolujte to spuštěním níže uvedeného příkazu:
SELECT * FROM varchar_test;
Výstup: