A PostgreSQL támogatja a VARCHAR nevű karakteres adattípust. Ez az adattípus korlátozott hosszúságú karakterek tárolására szolgál. A PostgreSQL-ben varchar(n)
formában jelenik meg, ahol n a karakterek hosszának korlátját jelöli. Ha n nincs megadva, az alapértelmezett érték varchar
, amely korlátlan hosszúságú. Bármilyen kísérlet hosszabb karakterlánc tárolására a varchar(n)
-vel definiált oszlopban a PostgreSQL hibaüzenetet ad ki. Egy kivétel azonban van: ha a többlet karakterek mind szóközök, a PostgreSQL a szóközöket a maximális hosszúságra vágja le és tárolja a karakterláncot. A varchar adattípushoz a hosszmeghatározó megadásának egyetlen előnye, hogy a PostgreSQL ellenőrzi és hibát ad ki, ha hosszabb karakterláncot próbál beilleszteni a varchar(n) oszlopba.
Syntax: variable_name VARCHAR(n)
Példa :
Hozzunk létre egy új táblát(mondjuk char_test) a demonstrációhoz az alábbi parancsokkal:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
Most szúrjunk be egy új sort a char_test táblába az alábbi paranccsal:
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
A PostgreSQL ebben a szakaszban hibát jelez, mivel az x oszlop adattípusa char(1), és az alábbiakban látható módon egy három karakterből álló karakterláncot próbáltunk beszúrni ebbe az oszlopba:
ERROR: value too long for type character varying(1)
Szóval, most javítsuk ki.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
Most ugyanezt a hibát kapjuk az y oszlopnál is, mivel a beírt karakterek száma nagyobb, mint 10, ahogy az alább látható:
ERROR: value too long for type character varying(10)
javítsuk ki ezt is.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
Most, hogy sikerült sikeresen hozzárendelnünk az értékeket a karakteres adattípushoz, ellenőrizzük az alábbi parancs futtatásával:
SELECT * FROM varchar_test;
Kimenet: