PostgreSQL中character varying数组是否限制元素精度?含character varying(7)[]场景
关于PostgreSQL中带长度限制的
character varying数组的疑问解答 针对你的两个问题,我来逐一说明:
1. character varying数组是否会对数组内的每个元素应用精度限制?
是的,PostgreSQL会对数组中的每一个元素单独应用你指定的character varying(n)长度限制。换句话说,数组类型的长度约束是作用于数组的每个成员,而不是整个数组的总长度。
2. 创建character varying(7)[]类型的列,PostgreSQL是否支持维持每个元素7字符精度?
完全支持!你可以直接定义这种带元素长度约束的数组列,PostgreSQL会在数据库层面强制执行每个元素的长度限制。
举个实际的测试例子:
创建测试表
CREATE TABLE demo_array_table ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, restricted_strings character varying(7)[] );
尝试插入合规数据(正常执行)
INSERT INTO demo_array_table (restricted_strings) VALUES (ARRAY['hello12', 'world', 'foo']);
尝试插入超长元素(触发错误)
INSERT INTO demo_array_table (restricted_strings) VALUES (ARRAY['toolongstring', 'valid']);
执行这条语句会收到类似如下的错误提示:
ERROR: value too long for type character varying(7)
DETAIL: Value: "toolongstring"
这个错误就验证了每个元素都被严格限制在7个字符以内。
内容的提问来源于stack exchange,提问作者A. Welsh
相关产品推荐
相关产品推荐

