PostgreSQL – VARCHAR 数据类型
PostgreSQL 支持称为 VARCHAR 的字符数据类型。此数据类型用于存储有限长度的字符。在PostgreSQL中表示为varchar(n)
,其中n表示字符长度的限制。如果未指定 n,则默认为具有无限长度的varchar
。任何尝试在用varchar(n)
定义的列中存储更长的字符串导致 PostgreSQL 发出错误。但是,一个例外是,如果多余的字符都是空格,PostgreSQL 会将空格截断到最大长度并存储字符串。为 varchar 数据类型指定长度说明符的唯一优点是,如果您尝试将更长的字符串插入到 varchar(n) 列中,PostgreSQL 将检查并发出错误。
Syntax: variable_name VARCHAR(n)
例子 :
让我们使用以下命令为演示创建一个新表(例如 char_test):
CREATE TABLE varchar_test (
id serial PRIMARY KEY,
x VARCHAR (1),
y VARCHAR(10)
);
现在让我们使用以下命令在 char_test 表中插入一个新行:
INSERT INTO varchar_test (x, y)
VALUES
(
'Geeks',
'This is a test for char'
);
在这个阶段,PostgreSQL 将引发错误,因为 x 列的数据类型是 char(1),我们尝试将一个包含三个字符的字符串插入到该列中,如下所示:
ERROR: value too long for type character varying(1)
所以,现在让我们修复它。
INSERT INTO varchar_test (x, y)
VALUES
(
'G',
'This is a test for char'
);
现在,由于输入的字符数大于 10,我们将在 y 列中得到相同的错误,如下所示:
ERROR: value too long for type character varying(10)
我们也修一下吧。
INSERT INTO varchar_test (x, y)
VALUES
(
'G',
'hello Geek'
);
现在我们已经成功地将值分配给字符数据类型,通过运行以下命令来检查它:
SELECT * FROM varchar_test;
输出: