问题描述
以下两种数据类型有什么区别?
我认为当我们还想使用长度约束时使用 character varying[]
。但是,从我在 pgAdmin 中看到的情况来看,我们也可以将此约束与 character varying
一起使用。
解决方法
文本与文本数组。它表示单个用户名,其中可能有多个电子邮件存储为 VARCHAR(100)
类型的数组。
CREATE TABLE tab(
username character varying(100),email character varying(100)[]
);
INSERT INTO tab(username,email) VALUES ('user','{"[email protected]","[email protected]"}');
SELECT *,email[1],email[2]
FROM tab;
输出:
+-----------+------------------------------+---------------+--------------+
| username | email | email | email |
+-----------+------------------------------+---------------+--------------+
| user | {[email protected],[email protected]} | [email protected] | [email protected] |
+-----------+------------------------------+---------------+--------------+
,
“字符变化”(或简称为 varchar)是一个具有变化长度的字符串(文本)字段(在您的情况下最多 100 个字符)。 []
表示一个数组。即,“字符变化[]”是这种“字符变化”字符串的数组。